gpt4 book ai didi

PHP strtotime 结果在 php7.3.2 和 php7.3.1 中不同

转载 作者:行者123 更新时间:2023-12-03 20:51:14 25 4
gpt4 key购买 nike

刚好不到1900,多是正常的。
php 版本是 7
例子:

date_default_timezone_set('PRC');
$sbegintime = strtotime('1900-01-01 00:00:00');
var_dump($sbegintime);exit;
php7.3:-2209017600
php7.2:-2209017943
为什么?
演示~ https://3v4l.org/MHvIs

最佳答案

famous SO question与中国的一个历史事件有关,其中时钟在 1928 年元旦被调回 352 秒,这意味着在处理该时间之前的日期时,您可能会得到意想不到的结果。 显然 PHP 已经更新了该时区的时区偏移(对于 1928 年之前的日期),从 +8:00 到 +8:05 . (我现在找不到但在链接问题中提到的其他一些变化,说明偏移量从 352 变为 343)。

/* php7.2 (+8:00) */

(new DateTime('1900-01-01 00:00:00', new DateTimezone("PRC")))->format(\DateTime::ATOM);
// 1900-01-01T00:00:00+08:00"

/* php7.3: (+8:05) */

(new DateTime('1900-01-01 00:00:00', new DateTimezone("PRC")))->format(\DateTimeInterface::ATOM);
// "1900-01-01T00:00:00+08:05"
php7.3 的改动并没有特别提到这个改动,但是如果你看一下 php7.2.12 的改动它说

"Upgraded timelib to 2017.08."


7.3.8它说

"Updated timelib to 2018.02."


timelib是支持 PHP DateTime 的底层库,在这些版本之间实现的更改是负责任的,不幸的是我找不到更改日志。

关于PHP strtotime 结果在 php7.3.2 和 php7.3.1 中不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62653250/

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