Re: [SMARTY-DEV] Bug in smarty_modifier_date_format

From: Date: Wed, 10 Jan 2007 16:30:36 +0000
Subject: Re: [SMARTY-DEV] Bug in smarty_modifier_date_format
References: 1  Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-2926@lists.php.net to get a copy of this message
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 "The TIMESTAMP data type has varying properties, depending on the MySQL version and the SQL mode the server is running in. These properties are described later in this section." -- http://dev.mysql.com/doc/refman/5.0/en/datetime.html For example (on 5.0.16): | Field | Type | Null | Key | Default | Extra | | date | timestamp | YES | | 0000-00-00 00:00:00 | | But either way if its a datetime or a timestamp applying smarty_make_timestamp to it still solves the problem. boots schrieb: > Hi. > > That looks like a MySQL datetime rather than a timestamp. Otherwise, looks > good. I've committed the %R fix to CVS. > > Thanks! > > boots > > --- Danilo Buerger <danilo@blizzz.org> wrote: > > Small errata: it should be smarty_make_timestamp() instead of > smarty_make_time_stamp() of course. > > Danilo Buerger schrieb: >>>> Hello list, >>>> >>>> when using Smarty in a Windows environment (substr(PHP_OS,0,3) == 'WIN') >>>> and trying to format a MySQL timestamp (0000-00-00 00:00:00) an error >>>> occurs because the string is passed to strftime() without applying >>>> smarty_make_time_stamp() to the string first. Another bug occurs when >>>> using the %R format (which is unknown to Windows, see >>>> >> >> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_strftime.2c_.wcsftime.asp)). >>>> So here is the diff that should fix these problems: >>>> >>>> Index: smarty-2.6.16/plugins/modifier.date_format.php >>>> =================================================================== >>>> --- smarty-2.6.16/plugins/modifier.date_format.php (revision 84) >>>> +++ smarty-2.6.16/plugins/modifier.date_format.php (working copy) >>>> @@ -31,10 +31,10 @@ >>>> function smarty_modifier_date_format($string, $format="%b %e, %Y", >>>> $default_date=null) >>>> { >>>> if (substr(PHP_OS,0,3) == 'WIN') { >>>> - $hours = strftime('%I', $string); >>>> + $hours = strftime('%I', smarty_make_time_stamp($string)); >>>> $short_hours = ( $hours < 10 ) ? substr( $hours, -1) : $hours; >>>> - $_win_from = array ('%e', '%T', '%D', >>>> '%l'); >>>> - $_win_to = array ('%#d', '%H:%M:%S', >>>> '%m/%d/%y', >>>> $short_hours); >>>> + $_win_from = array ('%e', '%T', '%D', >>>> '%l', >>>> '%R'); >>>> + $_win_to = array ('%#d', '%H:%M:%S', >>>> '%m/%d/%y', >>>> $short_hours, '%H:%M'); >>>> $format = str_replace($_win_from, $_win_to, $format); >>>> } >>>> if($string != '') { >>>> >>>> Greets, >>>> >>>> Danilo Bürger > ____________________________________________________________________________________ > Do you Yahoo!? > Everyone is raving about the all-new Yahoo! Mail beta. > http://new.mail.yahoo.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFpRSsrwsg9y2CBIURAqARAJ9l6lBwqv9dlG2y+jqlDQR0DVSsjQCfazcq yCdXpTOD81ASUmgqvU0af6c= =xWMN -----END PGP SIGNATURE-----

« previous php.smarty.dev (#2926) next »