gpt4 book ai didi

PHP DateTime getTimestamp 不适用于 1901 年 12 月 13 日之前的时间

转载 作者:可可西里 更新时间:2023-10-31 22:50:40 25 4
gpt4 key购买 nike

我的环境:Apache 2.4.27php 5.6.3164位架构

示例代码:

$date = new DateTime('now');
$date->setDate(1900,1,1);
$date->setTime(0, 0, 0);
$time = $date->getTimestamp();

$time 的值为 false。正如我测试的那样,getTimestamp 仅在 14 Dec 1901 - 19 Jan 2038 范围内有效。

我用谷歌搜索,但没有找到任何解决方案。如果您有任何理想,请与我分享!

P/s:示例代码是Moodle核心的一部分。所以请不要建议更改代码!

最佳答案

这是 year 2038 problem反过来。

64 位可以容纳的值是有限制的,你已经找到了。

PHP 使用 Linux 时间戳,计算 1970 年 1 月 1 日午夜之后(在您的情况下为之前)的秒数。

如果您将 64 位可以容纳的最大负值作为秒,并从 1970 年 1 月 1 日(又名纪元)减去该值,您将得到您找到的限制

关于PHP DateTime getTimestamp 不适用于 1901 年 12 月 13 日之前的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49167383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com