ID: 22163 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Feedback Bug Type: Date/time related Operating System: MacOS X 10.2 PHP Version: 4.3.0 New Comment:
H'mmm -- I get 23:59:59 29-Mar = 1048982399; 01:00:01 30-Mar = 1048982401 on my system, which is what I expected from your report. There seems to be an extra minute or so of limbo on yours for some reason. Can you try again with: mktime(1, 1, 3, 3, 30, 2003) and let us know the result. If it's about 1048982463, then it seems there's a whole minute in there for which you don't seem to be able to get a valid time. If it's anything else, then something is really screwy. Either way, it seems to be a real bug. Previous Comments: ------------------------------------------------------------------------ [2003-02-12 05:53:05] [EMAIL PROTECTED] ok, I used the script: <?PHP $the_day=mktime(0,0,0,3,30,2003); echo "$the_day<br>"; echo "23:59:59 29-Mar = ", mktime(23, 59, 59, 3, 29, 2003), "; 01:00:01 30-Mar = ", mktime(1, 0, 1, 3, 30, 2003); ?> and got: -3662 23:59:59 29-Mar = 1048982399; 01:00:01 30-Mar = -61 I thought it might be a daylight savings time problem as well, hence I thought the extra parameter I normally use would solve the problem, but it didn't. i.e. $the_day=mktime(0,0,0,3,30,2003,0); ------------------------------------------------------------------------ [2003-02-12 05:31:04] [EMAIL PROTECTED] Of course, I meant "; 01:00:01 30-Mar = " in the second line (although the mktime() call is correct)! ------------------------------------------------------------------------ [2003-02-12 05:27:07] [EMAIL PROTECTED] I think this must be related to daylight savings time -- 30th March 2003 is certainly the date on which DST begins in western Europe. Can you try this, and see what you get: echo "23:59:59 29-Mar = ", mktime(23, 59, 59, 3, 29, 2003), "; 00:00:01 30-Mar = ", mktime(1, 0, 1, 3, 30, 2003); If those timestamps are 2 seconds apart, then your original mktime() is falling into the limbo of the "lost hour" due to the clocks going back (the second after 29-Mar-2003 23:59:59 must be regarded as 30-Mar-2003 01:00:00), and the algorithm used on your system returns a nonsense value when that happens. Mike ------------------------------------------------------------------------ [2003-02-12 02:31:17] [EMAIL PROTECTED] Yes, I have also tried (and just tried it again to make sure): $the_day=mktime(0,0,0,3,30,2003); Same result, -3662 Anything else I can try to narrow down where the problem might be lying? ------------------------------------------------------------------------ [2003-02-11 15:29:51] [EMAIL PROTECTED] Did you try: $the_day=mktime(0,0,0,3,30,2003); ?? ------------------------------------------------------------------------ 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/22163 -- Edit this bug report at http://bugs.php.net/?id=22163&edit=1