0

我是 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 年的问题?为什么它可以输出正确的值?时间戳不能保持这么大的价值,对吧?

4

1 回答 1

2

这只是 32 位版本的 PHP 的问题,您可能正在运行一个 64 位版本,它能够处理更多的毫秒数,因此表示一个时间戳,其值比 2038 年更远。

于 2015-09-04T06:03:40.190 回答