derick          Sat Aug 16 16:55:28 2003 EDT

  Added files:                 
    /php-src/ext/standard/tests/time    bug17988.phpt 

  Modified files:              
    /php-src/ext/standard       parsedate.y 
    /php-src    NEWS 
  Log:
  - Fixed bug #17988: strtotime fails to parse timestamp from postgresql
  #- This is actually a feature request
  
  
Index: php-src/ext/standard/parsedate.y
diff -u php-src/ext/standard/parsedate.y:1.36 php-src/ext/standard/parsedate.y:1.37
--- php-src/ext/standard/parsedate.y:1.36       Mon Jul 28 00:01:32 2003
+++ php-src/ext/standard/parsedate.y    Sat Aug 16 16:55:27 2003
@@ -8,7 +8,7 @@
 **  This code is in the public domain and has no copyright.
 */
 
-/* $Id: parsedate.y,v 1.36 2003/07/28 04:01:32 iliaa Exp $ */
+/* $Id: parsedate.y,v 1.37 2003/08/16 20:55:27 derick Exp $ */
 
 #include "php.h"
 
@@ -228,6 +228,27 @@
                        ((struct date_yy *)parm)->yyTimezone =  -$6 * 60;
                }
        }
+       | tUNUMBER ':' tUNUMBER ':' tUNUMBER '.' tUNUMBER pgsqlzonepart {
+           ((struct date_yy *)parm)->yyHour = $1;
+           ((struct date_yy *)parm)->yyMinutes = $3;
+           ((struct date_yy *)parm)->yySeconds = $5;
+           ((struct date_yy *)parm)->yyMeridian = MER24;
+       }
+       ;
+
+pgsqlzonepart : tSNUMBER {
+           ((struct date_yy *)parm)->yyHaveZone++;
+               if ($1 <= -100 || $1 >= 100) {
+                       ((struct date_yy *)parm)->yyTimezone =  
+                               -$1 % 100 + (-$1 / 100) * 60;
+               } else {
+                       ((struct date_yy *)parm)->yyTimezone =  -$1 * 60;
+               }
+       }
+       | zone {
+           ((struct date_yy *)parm)->yyHaveZone++;
+       }
+       | /* empty */
        ;
 
 zone   : tZONE {
Index: php-src/NEWS
diff -u php-src/NEWS:1.1450 php-src/NEWS:1.1451
--- php-src/NEWS:1.1450 Fri Aug 15 21:34:45 2003
+++ php-src/NEWS        Sat Aug 16 16:55:28 2003
@@ -41,6 +41,7 @@
 - Fixed bug #22367 (undefined variable has a value). (Zeev)
 - Fixed bug #19859 (allow fast_call_user_function to support __call). 
   (Stanislav)
+- Fixed bug #17988 (strtotime failed to parse postgresql timestamp). (Derick)
 
 29 Jun 2003, PHP 5 Beta 1 
 - Removed the bundled MySQL client library. (Sterling)

Index: php-src/ext/standard/tests/time/bug17988.phpt
+++ php-src/ext/standard/tests/time/bug17988.phpt
--TEST--
Bug #17988 strtotime handling of postgresql timestamps
--FILE--
<?php
putenv("TZ=GMT");
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728 GMT"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728 MET"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728 MEST"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728 EDT"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728-00"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728+00"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728-04"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728+04"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728-0300"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728+0300"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728-0330"))."\n";
echo gmdate('Y-m-d H:i:s', strtotime("2002-06-25 14:18:48.543728+0330"))."\n";
?>
--EXPECT--
2002-06-25 14:18:48
2002-06-25 14:18:48
2002-06-25 13:18:48
2002-06-25 12:18:48
2002-06-25 18:18:48
2002-06-25 14:18:48
2002-06-25 14:18:48
2002-06-25 18:18:48
2002-06-25 10:18:48
2002-06-25 17:18:48
2002-06-25 11:18:48
2002-06-25 17:48:48
2002-06-25 10:48:48



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to