ID:               22163
 User updated by:  [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Feedback
+Status:           Open
 Bug Type:         Date/time related
 Operating System: MacOS X 10.2
 PHP Version:      4.3.0
 New Comment:

really screwy then :-)

With 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:01:03 30-Mar = ", mktime(1, 1, 3, 3, 30, 2003);

?>

I get the result:
-3662
23:59:59 29-Mar = 1048982399; 01:01:03 30-Mar = -1


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

[2003-02-12 07:28:21] [EMAIL PROTECTED]

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.


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

[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?

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

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

Reply via email to