php为什么新的DateTime('现在')在2038年之后返回1970

时间:2014-12-10 17:49:21

标签: php datetime unix-timestamp

我决定检查unix时代的结束,所以我在日历中更改了超过2038的日期。 我惊讶于:

$now = new DateTime('now');    echo $now->format('Y-m-d');

退回1970-01-01!

$now = new DateTime();

返回相同,php 5.4返回相同。 但是:

$now = new DateTime('9000-10-01');

返回9000-01-01。 如何使用DateTime获取2038年后的当前日期?

我的操作系统:winxp x32和php 5.3 / 5.4 x86。

1 个答案:

答案 0 :(得分:1)

"如何使用DateTime获取2038年后的当前日期?"

我考虑使用完全64位堆栈和操作系统。顺便说一句,unix时间戳约定不仅用于unix / linux。

请参阅php time function作为一个很好的例子。如果仅使用32位整数,则此函数无法给出2038之后的日期结果。