ID:               22635
 Comment by:       michael dot mauch at gmx dot de
 Reported By:      jsteen at timecom dot com
 Status:           Open
 Bug Type:         Date/time related
 Operating System: win32
 PHP Version:      4.3.1
 New Comment:

Please read the fine manual. From
<http://www.php.net/manual/en/function.mktime.php>:

"on systems where time_t is a 32bit signed integer, as most common
today, the valid range for year is somewhere between 1902 and 2037".

If you are using values outside this range, you get undefined
behaviour.


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

[2003-03-12 03:34:12] jsteen at timecom dot com

WE F...ING KNOW mktime, gmmktime etc. WORK FINE ON *NIX!
THIS IS A WIN REPORT!

[flame: on]
is it a new policy on bugs.php.net to NOT read post
headers/declarations, write "works fine with linux" as answer, and put
the bug on 'BOGUS'?

i'm among the many users that are pissed that all the
timestamp-functions are buggy on win. ok. fine. deal. but then please
take our reports seriously and put a proper comment in the man! i
really begin to wonder whether you're not just too lazy to seriously
deal with it if i get this sorts of answers.
[flame: off]

so why does 1.1.1970 not have 24h?

please omit any of the usual answers, like:
- works fine for linux
- blame MS

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

[2003-03-11 11:15:13] [EMAIL PROTECTED]

Works fine with Linux.


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

[2003-03-11 07:53:26] jsteen at timecom dot com

1.1.1970 does not have 24 hours!

---------------------------------------------
for ($i = 1 ; $i< 365; $i++){
        $date = mktime(0,0,0,1,$i,1970);
        $date1 = mktime(0,0,0,1,$i+1,1970);

        echo "<br> $i: " .gmdate("Y m d", $date) . " ";
        echo ($date1 - $date ) /3600 ." h";
}
---------------------------------------------
1: 23.0002777778 h
2: 1970 01 01 24 h
3: 1970 01 02 24 h
4: 1970 01 03 24 h
...


---------------------------------------------
for ($i = 1 ; $i< 365; $i++){
        $date = gmmktime(0,0,0,1,$i,1970);
        $date1 = gmmktime(0,0,0,1,$i+1,1970);
        echo "<br> $i: " .gmdate("Y m d", $date) . " ";
        echo ($date1 - $date ) /3600 ." h";
}
---------------------------------------------
1: 24.0002777778 h
2: 1970 01 02 24 h
3: 1970 01 03 24 h
4: 1970 01 04 24 h
...

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







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


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

Reply via email to