我偶然发现了这个问题:
<?php
echo date('r', 4567743118);
期望和正确的结果(在本地主机上):
2114 年 9 月 30 日星期日 10:31:58 +0100
结果不正确(远程):
1978 年 8 月 24 日星期四 04:03:42 +0100
在 32 位平台上运行脚本时会得到错误的结果。我认为这是著名的 Y2038 问题,但我应该如何解决它?
如果我回显时间戳(当存储在变量中时),它显示正常,但date()
会破坏它(我假设转换为 int32)。
<?php
$a = 4567743118;
echo $a;
4567743118
[如果相关,它是来自 debian repos 的 PHP 5.4.4]