ID: 33414
Updated by: [EMAIL PROTECTED]
Reported By: nickj-phpbugs at nickj dot org
-Status: Open
+Status: Assigned
Bug Type: Date/time related
Operating System: Debian Woody GNU/Linux 3.0r6
PHP Version: 5CVS-2005-06-22 (dev)
Assigned To: derick
Previous Comments:
------------------------------------------------------------------------
[2005-09-05 08:38:35] nickj-phpbugs at nickj dot org
Looking very good but I'm still showing just a handful that are giving
the wrong days, namely:
===================================================================
ludo:~/tmp/php-5.1-dev# cat my-bugs/bug33414/win32-wrong-days.php
<?php
$tz="Pacific/Kwajalein";
print "TZ=$tz\n";
putenv("TZ=$tz");
$tStamp = mktime (17, 17, 17, 1, 8261, 1971);
print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
$strtotime_tstamp = strtotime("Friday", $tStamp);
print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
print "wanted=Friday 00:00:00\n\n";
$tz="Pacific/Enderbury";
print "TZ=$tz\n";
putenv("TZ=$tz");
$tStamp = mktime (17, 17, 17, 1, 8760, 1971);
print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
$strtotime_tstamp = strtotime("Sunday", $tStamp);
print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
print "wanted=Sunday 00:00:00\n\n";
$tz="Pacific/Kiritimati";
print "TZ=$tz\n";
putenv("TZ=$tz");
$tStamp = mktime (17, 17, 17, 1, 8760, 1971);
print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
$strtotime_tstamp = strtotime("Sunday", $tStamp);
print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
print "wanted=Sunday 00:00:00\n\n";
?>
===================================================================
Output with the 5.1.x-dev CVS snapshot from 200509050430 on a Linux
system:
===================================================================
ludo:~/tmp/php-5.1-dev# php5-200509050430/sapi/cli/php
my-bugs/bug33414/win32-wrong-days.php
TZ=Pacific/Kwajalein
tStamp=Friday 1993-08-13 17:17:17 KWAT 0
result=Saturday 1993-08-21 00:00:00 MHT 0
wanted=Friday 00:00:00
TZ=Pacific/Enderbury
tStamp=Sunday 1994-12-25 17:17:17 PHOT 0
result=Monday 1995-01-02 00:00:00 PHOT 0
wanted=Sunday 00:00:00
TZ=Pacific/Kiritimati
tStamp=Sunday 1994-12-25 17:17:17 LINT 0
result=Monday 1995-01-02 00:00:00 LINT 0
wanted=Sunday 00:00:00
ludo:~/tmp/php-5.1-dev#
===================================================================
------------------------------------------------------------------------
[2005-09-01 14:42:49] [EMAIL PROTECTED]
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
------------------------------------------------------------------------
[2005-07-06 06:14:20] nickj-phpbugs at nickj dot org
Most of the test cases are fixed in php5-200507060230 (including the 3
possible regressions listed above from bug #20382).
Just the following 3 seem to be giving incorrect results now (found
after doing another exhaustive check on a win32 system, and confirming
the results are also incorrect on a Linux system):
<?php
$tz="Pacific/Kwajalein";
print "TZ=$tz\n";
putenv("TZ=$tz");
$tStamp = mktime (17, 17, 17, 1, 8261, 1971);
print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
$strtotime_tstamp = strtotime("Friday", $tStamp);
print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
print "wanted=Friday 00:00:00\n\n";
$tz="Pacific/Enderbury";
print "TZ=$tz\n";
putenv("TZ=$tz");
$tStamp = mktime (17, 17, 17, 1, 8760, 1971);
print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
$strtotime_tstamp = strtotime("Sunday", $tStamp);
print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
print "wanted=Sunday 00:00:00\n\n";
$tz="Pacific/Kiritimati";
print "TZ=$tz\n";
putenv("TZ=$tz");
$tStamp = mktime (17, 17, 17, 1, 8760, 1971);
print "tStamp=". date("l Y-m-d H:i:s T I", $tStamp). "\n";
$strtotime_tstamp = strtotime("Sunday", $tStamp);
print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n";
print "wanted=Sunday 00:00:00\n\n";
?>
Output is:
===========================================
ludo:~/tmp/php-5.1-dev# php5-200507060230/sapi/cli/php
bug33414/win32-wrong-days.php
TZ=Pacific/Kwajalein
tStamp=Friday 1993-08-13 17:17:17 KWAT 0
result=Saturday 1993-08-21 00:00:00 MHT 0
wanted=Friday 00:00:00
TZ=Pacific/Enderbury
tStamp=Sunday 1994-12-25 17:17:17 PHOT 0
result=Monday 1995-01-02 00:00:00 PHOT 0
wanted=Sunday 00:00:00
TZ=Pacific/Kiritimati
tStamp=Sunday 1994-12-25 17:17:17 LINT 0
result=Monday 1995-01-02 00:00:00 LINT 0
wanted=Sunday 00:00:00
ludo:~/tmp/php-5.1-dev#
===========================================
------------------------------------------------------------------------
[2005-06-22 11:06:31] nickj-phpbugs at nickj dot org
Sorry, one further update - I think it would be better if my test
script printed out the exact expected results, rather than just testing
for the correct day. The reason that I say this is that I am seeing a
possible regression of bug #20382, not just for the Vienna timezone,
but for 2 other timezones as well. I.e. when I run these commands:
./get-and-build-php-5.1-dev 200506220830
cd php5-200506220830
# Run the date-related tests:
TEST_PHP_EXECUTABLE=sapi/cli/php sapi/cli/php run-tests.php
../bug33414/bug33414.phpt ext/date/tests/*.phpt
# Can then see the output of bug20382-2 with:
diff -u ext/date/tests/bug20382-2.exp ext/date/tests/bug20382-2.out
Then the diff shows this:
==================================================
ludo:~/tmp/php-5.1-dev/php5-200506220830# # Can then see the output of
bug20382-2 with:
ludo:~/tmp/php-5.1-dev/php5-200506220830# diff -u
ext/date/tests/bug20382-2.exp ext/date/tests/bug20382-2.out
--- ext/date/tests/bug20382-2.exp Wed Jun 22 18:58:14 2005
+++ ext/date/tests/bug20382-2.out Wed Jun 22 18:58:14 2005
@@ -105,17 +105,17 @@
America/Buenos_Aires
ts = Monday 1974-09-30 17:17:17 ART
-result = Monday 1974-10-07 00:00:00 ART
+result = Monday 1974-10-07 01:00:00 ARST
wanted = Monday 00:00:00
America/Rosario
ts = Monday 1974-09-30 17:17:17 ART
-result = Monday 1974-10-07 00:00:00 ART
+result = Monday 1974-10-07 01:00:00 ARST
wanted = Monday 00:00:00
Europe/Vienna
ts = Monday 1980-03-31 17:17:17 CET
-result = Monday 1980-04-07 00:00:00 CEST
+result = Sunday 1980-04-06 23:00:00 CET
wanted = Monday 00:00:00
Asia/Baku
ludo:~/tmp/php-5.1-dev/php5-200506220830#
==================================================
I.e. Either not getting the expected results in America/Buenos_Aires
and America/Rosario, as well as Vienna, or the "--EXPECT--" portion of
the test is wrong.
------------------------------------------------------------------------
[2005-06-22 09:32:57] nickj-phpbugs at nickj dot org
Also available as a .phpt unit-test here:
http://home.swiftdsl.com.au/~npj/php-bugs/bug33414.phpt
(Note: first attempt at a .phpt, so please forgive me if it's not quite
right).
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/33414
--
Edit this bug report at http://bugs.php.net/?id=33414&edit=1