|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-03-06 22:29 UTC] derick@php.net
[2006-03-06 22:45 UTC] derick@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 13:00:01 2025 UTC |
Description: ------------ Despite recent modifications to the date functions that now allow negative timestamps in both of my environments (Win32 and Linux) [THANK YOU, btw!], strtotime() returns false any time the "now" parameter evaluates to 0 or less, even when it clearly demonstrates it can perform the calculation requested and the date/time in question is within reasonable bounds. Reproduce code: --------------- <?php $a["mktime(1, 2, 3, 4, 5, 1967)"] = mktime(1, 2, 3, 4, 5, 1967); $a["strtotime('-10 years', 0)"] = strtotime('-10 years', 0); $a["strtotime('-10 years', 1)"] = strtotime('-10 years', 1); $a["strtotime('+10 years', 0)"] = strtotime('+10 years', 0); $a["strtotime('+10 years', 1)"] = strtotime('+10 years', 1); $a["gmmktime(0, 0, 0, 1, 1, 1970)"] = gmmktime(0, 0, 0, 1, 1, 1970); $a["strtotime('-10 years', gmmktime(0, 0, 0, 1, 1, 1970))"] = strtotime('-10 years', gmmktime(0, 0, 0, 1, 1, 1970)); $a["strtotime('12/31/1969 19:00:00 -10 years')"] = strtotime('12/31/1969 19:00:00 -10 years'); $a["strtotime('+10 years', gmmktime(0, 0, 0, 1, 1, 1965))"] = strtotime('+10 years', gmmktime(0, 0, 0, 1, 1, 1965)); $a["strtotime('12/31/1964 19:00:00 +10 years')"] = strtotime('12/31/1964 19:00:00 +10 years'); var_dump($a); ?> Expected result: ---------------- array(10) { ["mktime(1, 2, 3, 4, 5, 1967)"]=> int(-86551077) ["strtotime('-10 years', 0)"]=> int(-315619200) <------ ["strtotime('-10 years', 1)"]=> int(-315619199) ["strtotime('+10 years', 0)"]=> int(315532800) <------- ["strtotime('+10 years', 1)"]=> int(315532801) ["gmmktime(0, 0, 0, 1, 1, 1970)"]=> int(0) ["strtotime('-10 years', gmmktime(0, 0, 0, 1, 1, 1970))"]=> int(-315619200) <------ ["strtotime('12/31/1969 19:00:00 -10 years')"]=> int(-315619200) ["strtotime('+10 years', gmmktime(0, 0, 0, 1, 1, 1965))"]=> int(157766400) <------ ["strtotime('12/31/1964 19:00:00 +10 years')"]=> int(157766400) } Actual result: -------------- array(10) { ["mktime(1, 2, 3, 4, 5, 1967)"]=> int(-86551077) ["strtotime('-10 years', 0)"]=> bool(false) <------ ["strtotime('-10 years', 1)"]=> int(-315619199) ["strtotime('+10 years', 0)"]=> bool(false) <------ ["strtotime('+10 years', 1)"]=> int(315532801) ["gmmktime(0, 0, 0, 1, 1, 1970)"]=> int(0) ["strtotime('-10 years', gmmktime(0, 0, 0, 1, 1, 1970))"]=> bool(false) <------ ["strtotime('12/31/1969 19:00:00 -10 years')"]=> int(-315619200) ["strtotime('+10 years', gmmktime(0, 0, 0, 1, 1, 1965))"]=> bool(false) <------ ["strtotime('12/31/1964 19:00:00 +10 years')"]=> int(157766400) }