strtotime时间戳最大值
PHP有效的时间戳典型范围是格林威治时间1901年12月13日20:45:54到2038年1月19日03:14:07。(此范围符合32位有符号整数的最小值和最大值)。不过在PHP5.1之前此范围在某些系统(如Windows)中限制为从1970年1月1日到2038年1月19日。
当然,64位的系统是不会受此影响的。
Note
有效的时间戳通常从 Fri, 13 Dec 1901 20:45:54 GMT 到 Tue, 19 Jan 2038 03:14:07 GMT(对应于 32 位有符号整数的最小值和最大值)。不是所有的平台都支持负的时间戳,那么日期范围就被限制为不能早于 Unix 纪元。这意味着在 1970 年 1 月 1 日之前的日期将不能用在 Windows,一些 Linux 版本,以及几个其它的操作系统中。不过 PHP 5.1.0 及更新的版本克服了此限制。 —— [ PHP手册 ]
如果系统是32位的,且php版本在5.1.0之后的,可以使用new DateTime
解决
$date = '2090-10-01';
$datetime = new DateTime($date);
echo '<p>正常时间: ', $datetime->format('Y-m-d H:i'), '</p>';
echo '<p>时间溢出: ', date('Y-m-d H:i', strtotime($date)), '<p>';