【发布时间】:2020-05-07 14:10:27
【问题描述】:
我正在尝试根据他们的“TimezoneId”使用世界上任何位置的准确当前本地时间。有时我会得到正确的 GMT 偏移量。例如:
$localTimezone = new DateTimeZone('America/Los_Angeles');
$gmtTimezone = new DateTimeZone('GMT');
$currentDateTime = new DateTime('2020-01-21 13:14', $gmtTimezone);
$offset = $localTimezone ->getOffset($currentDateTime );
echo $offset/3600;
这将返回-8,这对于今天在洛杉矶的日期是正确的。
但是,当我尝试使用 America/Sao_Paulo 作为“TimezoneId”时,我得到的 -2 目前对于该位置不正确。根据我尝试过的谷歌和其他时间应用程序,它应该是-3。
我已经搜索了一个解决方案并看到了不同的尝试,这些尝试似乎对我不起作用。
感谢您的意见!
【问题讨论】:
-
您可能需要更新您的时区数据库。圣保罗曾经遵守夏令时 (-2),但现在不再遵守。
-
@aynber 我如何更新时区数据库?我只有 timezoneids 的值而不是偏移量本身
-
感谢您的帮助@aynber
标签: php time timezone timezone-offset