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

问题描述 投票:0回答:1

我在 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 timezone utc gmt
1个回答
0
投票

您可能使用的是非常旧的 PHP 版本,这就是为什么您的图书馆“不知道”墨西哥已经放弃 DST 的原因。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.