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



我有一个问题,php在时区之间转换日期。特别是使用DateTime和DateTimeZone函数,我得到America/Mexico_City的当前偏移量是-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,但我想仔细检查如果我做错了什么,如果其他人遇到这个问题。

谢谢,

您可能正在使用一个非常旧的PHP版本,这就是为什么您的库"不知道"的原因。墨西哥放弃了夏时制

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

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

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

最新更新