我是PHP的新手,从我正在阅读的书中,我发现有一年2038年的问题,其中指出当我使用时间戳时,我可以达到的最远日期将是2038年1月19日。为了克服这个约束,我建议使用dateTime对象。但是,当我在PHP中测试它时(使用MAMP和PHP 5.6.6),似乎即使我在更大的日期使用时间戳,它也能很好地工作。
例如,请注意以下代码:
<?php
$date1_timestamp = mktime(13, 30, 0, 1, 12, 2049);
$date1 = date('Y-m-d H:i:s', $date1_timestamp);
echo $date1; // output: 2049-01-12 13:30:00
?>
我想问为什么我的PHP服务器不会遭受2038年的问题?为什么它可以输出正确的值?时间戳不能拥有如此大的价值,对吧?
答案 0 :(得分:2)
对于32位版本的PHP,这只是一个问题,您可能正在运行64位版本,该版本能够处理更多的毫秒数,因此表示将来的值比2038年更进一步的时间戳。