ID:               23467
 Comment by:       scottmacvicar at ntlworld dot com
 Reported By:      John at JGSystems dot net
 Status:           Verified
 Bug Type:         Date/time related
 Operating System: win32
 PHP Version:      4CVS, 5CVS
 New Comment:

tname[0] is replaced with tzname[0] if it exists, the same should be
done with tname[1] but it doesn't need set to ??? like tname[0] since
the default value is BST set in the tname declaration.

I've tested this patch on windows and will try to test on linux.

Patch
---
diff -u datetime.c datetime.c.patched
--- datetime.c  2004-02-10 12:30:17.000000000 +0000
+++ datetime.c.patched  2004-02-10 12:32:12.000000000 +0000
@@ -324,6 +324,10 @@
                } else {
                        tname[0] = "???";
                }
+
+               if (tzname[1] != NULL) {
+                       tname[1] = tzname[1];
+               }
 #endif
        }


Previous Comments:
------------------------------------------------------------------------

[2003-11-04 21:18:38] danielc at analysisandsolutions dot com

Um, sorry if I'm cluttering the list...  This bug is half a year old so
I'm wondering if/when it's going to get fixed.

Y'all probably know what's going on, but allow me to clarify what I've
learned about this bug, perhaps it will help someone.

date('T') doesn't work under Windows during Daylight times and there's
no notation of this in the manual.  I'll put a user comment in there.

Here's a test script:

<?php
echo 'Local:     dT='.date('T') . ' dO='.date('O') . '
sZ='.strftime('%Z');

echo "\n<br />";
putenv('TZ=EST5EDT');
echo 'EST5EDT:   dT='.date('T') . ' dO='.date('O') . '
sZ='.strftime('%Z');

echo "\n<br />";
putenv('TZ=PST8PDT');
echo 'PST8PDT:   dT='.date('T') . ' dO='.date('O') . '
sZ='.strftime('%Z');

echo "\n<br />";
putenv('TZ=GMT0BST');
echo 'GMT0BST:   dT='.date('T') . ' dO='.date('O') . '
sZ='.strftime('%Z');

echo "\n<br />";
putenv('TZ=MST-3MDT');
echo 'MST-3MDT:  dT='.date('T') . ' dO='.date('O') . '
sZ='.strftime('%Z');

echo "\n<br />";
putenv('TZ=GMT');
echo 'GMT:       dT='.date('T') . ' dO='.date('O') . '
sZ='.strftime('%Z');
?>


OUTPUT DURING EASTERN DAYLIGHT TIME
-----------------------------------
Local:     dT=BST dO=-0400 sZ=Eastern Daylight Time
EST5EDT:   dT=BST dO=-0400 sZ=EDT
PST8PDT:   dT=BST dO=-0700 sZ=PDT
GMT0BST:   dT=BST dO=+0100 sZ=BST
MST-3MDT:  dT=BST dO=+0400 sZ=MDT
GMT:       dT=GMT dO=+0000 sZ=GMT

OUTPUT DURING EASTERN STANDARD TIME
-----------------------------------
Local:     dT=Eastern Standard Time dO=-0500 sZ=Eastern Standard Time
EST5EDT:   dT=EST dO=-0500 sZ=EST
PST8PDT:   dT=PST dO=-0800 sZ=PST
GMT0BST:   dT=GMT dO=+0000 sZ=GMT
MST-3MDT:  dT=MST dO=+0300 sZ=MST
GMT:       dT=GMT dO=+0000 sZ=GMT

------------------------------------------------------------------------

[2003-08-26 22:59:32] [EMAIL PROTECTED]

This is general win32 problem. No need to post anymore comments here,
we know about it.


------------------------------------------------------------------------

[2003-08-20 20:35:39] John at JGSystems dot net

Here ya go:
Commands:
echo date("r"),"<br>\n";
echo date("I"),"<br>\n";  // uppercase "i"
echo date("T"),"<br>\n";

Result:
Wed, 20 Aug 2003 19:33:34 -0600
1
BST

This what you wanted? (I hope)

------------------------------------------------------------------------

[2003-05-03 12:14:00] John at JGSystems dot net

Running PHP with BadBlue on Two machines.  One Win2K Pro, the other XP
SPK1.  Also on a Linux Apache production machine.

"T" Option to the date function appears to display incorrectly.  Shows
Mountain Standard Time all the time.  It is now Daylight Savings Time
here in Montana.

Script:

php print "This page was last modified:<br>".date("l - F d, Y \\a\\t
g:i A T.", getlastmod())

Under my Apache servers PHP displays correctly.  I use this for the
getlastmod() document function.  Here is a copy/paste from the same
page on two different servers.

Linux Apache (Production Machine):

This page was last modified:
Friday - April 25, 2003 at 11:30 AM MDT.

Windows 2K/XP:

This page was last modified:
Friday - April 25, 2003 at 11:30 AM Mountain Standard Time. 

This also happens with a simple date printout:

php print "This page was last modified:<br>".date("l - F d, Y \\a\\t
g:i A T.")

Saturday - May 03, 2003 at 11:09 AM Mountain Standard Time.

Hope this helps.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=23467&edit=1

Reply via email to