Re: Bug in smarty_modifier_date_format
boots <[email protected]> Wed, 10 Jan 2007 08:37:30 -0800 (PST)
| Newsgroups | gmane.comp.php.smarty.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi. I think the manual is clear that only the numeric only version of the MySQL timestamp is supported. http://smarty.php.net/manual/en/language.modifier.date.format.php I say it is better to use MySQL's UNIX_TIMESTAMP(foo) for other (all) cases. Personally, I vote against this change but I encourage others to comment. Best Regards! boots --- Danilo Buerger <[email protected]> wrote: > -----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 <[email protected]> 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----- > > -- > Smarty Development Mailing List (http://smarty.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com -- Smarty Development Mailing List (http://smarty.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php