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:

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


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

[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);

??


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

[2003-02-11 14:55:01] [EMAIL PROTECTED]

Sorry if I misunderstand, but as my first post shows I have tried the
year as 2003, as well as 03. No difference, and using the 29th as the
day instead works.

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

[2003-02-11 10:22:27] [EMAIL PROTECTED]

I think that for some reason on your system, 03 is interpreted as 0003
and not 2003 as you intended (works fine on linux). Could you try
changing the year to 2003 and see if that fixes the problem?

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

[2003-02-11 04:51:50] [EMAIL PROTECTED]

Hello

the function mktime seems to return an incorrect value for 
certain dates.

Example:

$the_day=mktime(0,0,0,03,30,03);

returns the value -3662

I have also tried different variations:
$the_day=mktime(0,0,0,3,30,03);
$the_day=mktime(0,0,0,03,30,2003);

But all yield the same result.

If I use:
$the_day=mktime(0,0,0,03,29,03);

I get a UNIX timestamp back as expected.

When using the mktime() function I normally also specify 
the daylight savings time value of 0, but this also makes 
no difference, whether it is 0 or 1.

I am using PHP as built by www.entropy.ch


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


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

Reply via email to