У вас когда-либо возникали проблемы с преобразованиями времени в PHP через функцию getTransitions?PHP Timezones getTransitions заслуживает доверия?
Я пытаюсь преобразовать аргентинскую дату в GMT. Если я смотрю в массив переходов, я получаю:
....
[63] => Array ([ts] => 1287284400 [time] => 2010-10-17T03:00:00+0000 [offset] => -7200 [isdst] => 1 [abbr] => ARST)
[64] => Array ([ts] => 1300586400 [time] => 2011-03-20T02:00:00+0000 [offset] => -10800 [isdst] => [abbr] => ART)
...
, что означает, если я не ошибаюсь, от 2010-10-17 до 2011-03-20 разницы в секундах аргентинской даты, по сравнению с эквивалентом GMT, он будет -7.200 (2 часа).
Но реальность - текущее смещение составляет четыре часа.
Пожалуйста, что мне не хватает? Извините, если выглядит как домашнее задание, но перед тем, как написать вопрос, я искал и пробовал много чего.
Спасибо.
Редактировать: Благодарим за ответы. Я понимаю, что переходы PHP жестко закодированы в установках PHP dll.s, поэтому, если какое-либо правительство страны решит изменить свои временные политики, то getTransitions устареет, если вы не обновите свою установку PHP (что-то не так просто, когда у вас есть производственная среда или вы используете общий хостинг).
Так что новый вопрос, существует какой-либо веб-сервис или динамический API, чтобы узнать текущую задержку времени (или будущую задержку) для определенного часового пояса, например http://worldtimeengine.com/api/, но, возможно, бесплатно?
Интересно. Timeanddate.com утверждает, что Аргентина [не имела переключения DST в этом году] (http://timeanddate.com/worldclock/timezone.html?n=51&syear=2010), но имела один прошлый год. Это противоречило бы дампу, который вы показываете выше. Что правильно? –
там также есть некоторые провинции, которые делают DST, и некоторые, которые отказываются судить по этому [debian bug report] (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502430), хотя это из 2008, и я не знаю, что такое текущий статус. – Gordon