Bug in smarty_modifier_date_format

From: Date: Wed, 10 Jan 2007 15:57:06 +0000
Subject: Bug in smarty_modifier_date_format
Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-2923@lists.php.net to get a copy of this message
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 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 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFpQzSrwsg9y2CBIURAiwfAKC2559Qbqpp5NudHqpllntapCPCjgCdEf4F zXmDYP26I7eb3ORownBUC1E= =oJnK -----END PGP SIGNATURE-----

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