gpt4 book ai didi

php 32 位日期解析 1901 年 12 月 13 日之前的日期

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:02 25 4
gpt4 key购买 nike

我很高兴使用 strtotime()在我的开发机器上解析日期,其中一些日期在 1800 年代,一个极端的例子在 1500 年代。

但是我的开发机是64位的,服务器是32位的。在 32 位机器上,1901 年 12 月 13 日星期五 20:45:54 UTC 之前的任何日期都超出范围(请参阅 strtotime 上的注释)。

我很乐意为此编写一些自定义代码,但我想我会问是否有任何 php 内置函数可以管理它。日期采用 ISO 8601 格式。

服务器是 centos 5.4 和 php 5.2.10 值得的

最佳答案

1901-12-12T05:00:00Z for example

我现在无法测试,但是 DateTime's constructor 可能无需 createFromFormat 即可接受您的格式。我真的无法从文档中分辨出来。

尝试

try {
$date = new DateTime('1901-12-12T05:00:00Z');
} catch (Exception $e) {
echo "Arggh! ".$e->getMessage();
die();
}

echo $date->format('Y-m-d H:i:s');

看看会发生什么,特别注意它是否正确理解 Z(即使其成为 UTC 时间)。

DateTime 在任何系统内部都使用 64 位数字,并且没有范围限制。

如前所述,从 5.3 开始,您将能够使用 createFromFormat它可以解析由 date() 的占位符之一表示的任何日期。这是最佳方式,因为您强制它解析特定模式,而不是猜测它。

关于php 32 位日期解析 1901 年 12 月 13 日之前的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5623647/

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