【发布时间】:2014-10-05 17:53:26
【问题描述】:
我在尝试使 unix_timestamps 大于 2038 年时遇到 PHP 函数 mktime 问题。我有 64 位操作系统。
服务器上的 PHP 版本:
php -v 给
PHP 5.1.6 (cli)(构建时间:2010 年 11 月 29 日 16:47:46)
php -r 'echo PHP_INT_MAX;' 给
9223372036854775807
但是
php -r 'var_dump( mktime(0, 0, 0, 4, 1, 2099) );' 给
布尔(假)
在开发服务器上
php -r 'var_dump( mktime(0, 0, 0, 4, 1, 2099) );' 给
整数(4078677600)
此 PHP 函数在 64 位系统上无法正常工作的原因可能是什么?此外,strtotime 不适用于年份大于 2038 的日期
【问题讨论】:
-
尝试使用
DateTime类。 -
DateTime 类仅在 (PHP 5 >= 5.2.0) 之后可用。在这一点上,我有 PHP 5.1.6 升级是一个选项,但这是最后一个选项。
标签: php 64-bit strtotime mktime year2038