Я пытаюсь использовать точное текущее местное время для любого места в мире на основе их "TimezoneId". Иногда я получаю правильное смещение по Гринвичу. Например:
$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
в соответствии с Google и другими приложениями, которые я пробовал.
Я искал решение и видел различные попытки, которые, кажется, не работают.
Спасибо за ваш вклад!