当我尝试在PHP中执行以下语句
echo gmdate("M d Y H:i:s", gmmktime(0, 0, 0,12, 31, 9999));
PHP返回以下日期
Result Jan 01 1970 00:00:00
我也尝试使用以下strtotime函数,但结果是相同的
echo gmdate("M d Y H:i:s", strtotime('2999-12-31'));
Result: Jan 01 1970 00:00:00
你知道这里有什么问题吗?
9999年和2999年超出了UNIX时间戳(strtotime()
和gmmktime()
返回的格式)的范围。最大有效值为INT_MAX, 0x7fffffff
(2038年1月18日前后)
gmdate
函数可以使用的最大日期是2038年1月19日;尝试使用超出该日期的日期无法计算(字面上),因此PHP返回您在结果中看到的Unix基本日期。
见http://us2.php.net/manual/en/function.gmdate.php .