夏令时取消后,php DateTimeZone中America/Mexico_City的偏移量错误

fcipmucu  于 2023-04-10  发布在  PHP
关注(0)|答案(2)|浏览(123)

我有一个问题与php在时区之间转换日期.特别是使用DateTime和DateTimeZone函数,我得到了美国/墨西哥城的当前偏移是-5小时w.r.t UTC(-18000秒)

$dateTimeZone = new DateTimeZone('America/Mexico_City');
$date = new DateTime('NOW');
$offset = $dateTimeZone->getOffset( $date ); // -> here $offset = -18000

我读到墨西哥去年取消了夏令时:https://www.timeanddate.com/news/time/mexico-abolishes-dst-2022.html
现在,如果你检查当前时间,他们说当前的偏移是-6小时w.r.t UTC:https://www.zeitverschiebung.net/en/city/3530597
有人遇到这个问题吗?我想我应该打开一个错误的PHP,但我想仔细检查,如果我做错了什么,如果其他人遇到这个问题。
谢啦

ecfsfe2w

ecfsfe2w1#

您可能正在使用一个非常旧的PHP版本,这就是为什么您的库“不知道”Mexico已经放弃了DST。

尝试将PHP版本升级到积极支持的版本,如8.1或8.2。

我在本地检查了它,在PHP 8.1.13中得到偏移量-21600,在PHP 8.1.12中得到偏移量-18000。

cbeh67ev

cbeh67ev2#

我们发现我们的PHP安装使用的是过时的时区库,我们检查了php ini文件中的“日期”部分。
我们的系统部门更新了库,现在问题解决了。
非常感谢你的帮助S.O.社区:)

相关问题