当我尝试在PHP中执行以下语句时
echo gmdate("M d Y H:i:s", gmmktime(0, 0, 0,12, 31, 9999));
PHP返回以下日期
结果1970年1月1日00:00:00
我也尝试使用以下strtotime函数,但结果相同
echo gmdate("M d Y H:i:s", strtotime('2999-12-31'));
结果:1970年1月1日00:00:00
知道这里有什么不对吗?
答案 0 :(得分:2)
年份9999和2999超出了UNIX时间戳的范围(strtotime()
和gmmktime()
返回的格式)。最大有效值为INT_MAX,0x7fffffff
(2038年1月18日左右)。
答案 1 :(得分:0)
gmdate
功能可以使用的最长日期是2038年1月19日;尝试使用超出该范围的日期(不会计算)(字面意思),因此PHP会返回您在结果中看到的基本Unix日期。