derick          Thu Jul 21 06:09:41 2005 EDT

  Added files:                 
    /php-src/ext/date/tests     mktime-3.phpt 

  Modified files:              
    /php-src/ext/date   php_date.c 
  Log:
  - Changed the year parameter so that 0..69 maps to 2000..2069 and 70..100 maps
    to 1970..2000, which was in the original code, but not in the documentation.
  
  
http://cvs.php.net/diff.php/php-src/ext/date/php_date.c?r1=1.40&r2=1.41&ty=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.40 php-src/ext/date/php_date.c:1.41
--- php-src/ext/date/php_date.c:1.40    Wed Jul 20 04:31:00 2005
+++ php-src/ext/date/php_date.c Thu Jul 21 06:09:40 2005
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_date.c,v 1.40 2005/07/20 08:31:00 derick Exp $ */
+/* $Id: php_date.c,v 1.41 2005/07/21 10:09:40 derick Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -623,6 +623,11 @@
                case 7:
                        /* break intentionally missing */
                case 6:
+                       if (yea >= 0 && yea < 70) {
+                               yea += 2000;
+                       } else if (yea >= 70 && yea <= 100) {
+                               yea += 1900;
+                       }
                        now->y = yea;
                        /* break intentionally missing again */
                case 5:

http://cvs.php.net/co.php/php-src/ext/date/tests/mktime-3.phpt?r=1.1&p=1
Index: php-src/ext/date/tests/mktime-3.phpt
+++ php-src/ext/date/tests/mktime-3.phpt
--TEST--
mktime() [3]
--INI--
error_reporting=2047
--FILE--
<?php
$tzs = array("America/Toronto", "Europe/Oslo");
$years = array(0, 69, 70, 71, 99, 100, 1900, 1901, 1902, 1999, 2000, 2001);

foreach ($tzs as $tz) {
        echo $tz, "\n";
        date_default_timezone_set($tz);
        foreach ($years as $year) {
                printf("Y: %4d - ", $year);
                $ret = mktime(1, 1, 1, 1, 1, $year);
                if ($ret == FALSE) {
                        echo "out of range\n";
                } else {
                        echo date("F ".DATE_ISO8601, $ret), "\n";
                }
        }
        echo "\n";
}
?>
--EXPECT--
America/Toronto
Y:    0 - January 2000-01-01T01:01:01-0500
Y:   69 - out of range
Y:   70 - January 1970-01-01T01:01:01-0500
Y:   71 - January 1971-01-01T01:01:01-0500
Y:   99 - January 1999-01-01T01:01:01-0500
Y:  100 - January 2000-01-01T01:01:01-0500
Y: 1900 - out of range
Y: 1901 - out of range
Y: 1902 - January 1902-01-01T01:01:01-0500
Y: 1999 - January 1999-01-01T01:01:01-0500
Y: 2000 - January 2000-01-01T01:01:01-0500
Y: 2001 - January 2001-01-01T01:01:01-0500

Europe/Oslo
Y:    0 - January 2000-01-01T01:01:01+0100
Y:   69 - out of range
Y:   70 - January 1970-01-01T01:01:01+0100
Y:   71 - January 1971-01-01T01:01:01+0100
Y:   99 - January 1999-01-01T01:01:01+0100
Y:  100 - January 2000-01-01T01:01:01+0100
Y: 1900 - out of range
Y: 1901 - out of range
Y: 1902 - January 1902-01-01T01:01:01+0100
Y: 1999 - January 1999-01-01T01:01:01+0100
Y: 2000 - January 2000-01-01T01:01:01+0100
Y: 2001 - January 2001-01-01T01:01:01+0100

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

Reply via email to