ID: 14391 Updated by: jah Reported By: [EMAIL PROTECTED] Status: Feedback Bug Type: Date/time related Operating System: Windows 2000 Server PHP Version: 4.0.6 New Comment:
Could be. Could also be that some of the assumptions made in ext/standard/datetime.c on lines 172-190 are just wrong for Windows-based systems. I'll do some testing next week, now that I finally have a Windows test system (with documentation) aside my trustworthy Linux. <offtopic> A machine that can boot two different operating systems is called 'dual-boot'. Mine boots to Linux, Solaris and Windows 2000. So should it be called 'trial-boot'? </offtopic> Previous Comments: ------------------------------------------------------------------------ [2002-01-13 07:45:40] [EMAIL PROTECTED] mmm, I think this is to blame at Microsoft then. Derick ------------------------------------------------------------------------ [2002-01-13 06:56:08] [EMAIL PROTECTED] Bug confirmed also with 4.1.1 on Windows 2000 server. Everything fine on Linux (4.1.1 and 4.0.3). Note that depending on your country, the result might be wrong on summer time too. I'm too living on a timezone GMT+2 (Finland), but we didn't switch to using daylight savings time until 1977. Which is correctly detected on Linux and wrong on Windows 2000 server (it thinks that we had daylight savings also on 1970-1976). ------------------------------------------------------------------------ [2002-01-13 05:15:26] [EMAIL PROTECTED] Can you test a newer version, say 4.1.1? ------------------------------------------------------------------------ [2002-01-13 04:59:58] [EMAIL PROTECTED] Same problem on 4.0.5 running on solaris and linux. ------------------------------------------------------------------------ [2001-12-09 07:29:35] [EMAIL PROTECTED] Please see the code below. The comments are the result of running this code on my PC, (my GMT Offset = +2 hours = +7200 sec.) You may see that the mktime() and date() functions work correct, but gmmktime() returns wrong value in winter time (when it is not a daylight saving time), and gmdate returns wrong "Z" parameter. Note: this bug does not appear on UNIX systems. <? $df="d.m.Y - H:i:s (Z), I"; $t=mktime(0,0,0,1,2,1970); echo "<br><b>Make 02.01.1970 - 00:00:00 (Local):</b><br>", "Timestamp: $t<br>", // 79200 "GMT: ", gmdate($df,$t), "<br>", // 01.01.1970 - 22:00:00 (7200) "Local: ", date($df,$t), "<br>", // 02.01.1970 - 00:00:00 (7200) "----------------------------------------<br>"; $t=gmmktime(0,0,0,1,2,1970); echo "<br><b>Make 02.01.1970 - 00:00:00 (GMT):</b><br>", "Timestamp: $t<br>", // 82800 (Why !=86400 ?) "GMT: ", gmdate($df,$t), "<br>", // 01.01.1970 - 23:00:00 (7200) "Local: ", date($df,$t), "<br>", // 02.01.1970 - 01:00:00 (7200) "----------------------------------------<br>"; $t=mktime(0,0,0,7,20,1970); echo "<br><b>Make 20.07.1970 - 00:00:00 (Local):</b><br>", "Timestamp: $t<br>", // 17269200 "GMT: ", gmdate($df,$t), "<br>", // 01.07.1970 - 21:00:00 (7200) "Local: ", date($df,$t), "<br>", // 02.07.1970 - 00:00:00 (10800) "----------------------------------------<br>"; $t=gmmktime(0,0,0,7,20,1970); echo "<br><b>Make 20.07.1970 - 00:00:00 (GMT):</b><br>", "Timestamp: $t<br>", // 17280000 (=86400*200) "GMT: ", gmdate($df,$t), "<br>", // 02.07.1970 - 00:00:00 (7200) "Local: ", date($df,$t), "<br>", // 02.07.1970 - 03:00:00 (10800) "----------------------------------------<br>"; ?> ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=14391&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]