我国停止夏令时。现在时间是20:16 但是在 PHP 上时间是 21:16。 有什么方法可以禁用夏令时吗? 我的代码是:
echo date('Y-m-d H:i:s');
阿塞拜疆 2016 年的变化正确反映在 the time zone database for the
Asia/Baku
time zone as release 2016c.
PHP 从 timezonedb PECL 包中获取时区信息。 2016c tz 数据,包括阿塞拜疆的变化,在 timezonedb 版本 2016.3 中。
每个版本的 PHP 都包含这个的嵌入式副本,但有时需要手动安装它,因为版本不一定一致。在这种情况下,最新版本的 PHP 是在 3 月 3 日发布的,而你需要的 timezonedb 版本是在 3 月 24 日发布的。
这里有一篇很好的文章 描述了如何准确安装 timezonedb PECL 包。安装最新版本后,您应该会看到代码显示正确的时间。
另外,认识到阿塞拜疆政府只在 3 月 17 日 宣布了变化,几乎没有时间实施变化。每当政府发出临时通知时,像您这样的情况就必然会出现。如果可能的话,请向您的政府提供反馈,以便在未来发生任何其他变化时提供更多的准备时间。
同样的问题发生在我身上:巴西在 2019 年停止遵守夏令时,结果,我的 Xampp 安装在夏天开始显示错误的时间。
问题已修复,将 php.ini 文件中的时区更改为从未观察到 DST 的 UTC-3 区域(美国/帕拉马里博)或更改为在 PHP 5.6 发布之前未观察到 DST 的 UTC-3 区域(美国/巴伊亚)。
这对我来说是唯一可能的解决方案,因为由 Matt Johnson-Pint 推荐的 timezonedb PECL 包 的 Windows DLL 与我的 Xampp 版本完全不兼容。
在我的例子中,作为一个快速的解决方案,我只是将服务器时钟设置为在夏令时选项打开时显示当前时间,就像与去年相比没有任何变化并且没有文件更新等完成!