【发布时间】:2014-10-24 09:48:37
【问题描述】:
我偶然发现了这个问题:
<?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]
【问题讨论】:
-
关于 y2038 的一切都是“相似的”,但这并不重要。我需要格式化这些时间戳。
-
date('r', '4567743118');的结果是什么? -
@ManeatingKoala 一样,'Thu, 24 Aug 1978 04:03:42 +0100'