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