2010-10-27 2 views
2

У вас когда-либо возникали проблемы с преобразованиями времени в 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/, но, возможно, бесплатно?

+2

Интересно. Timeanddate.com утверждает, что Аргентина [не имела переключения DST в этом году] (http://timeanddate.com/worldclock/timezone.html?n=51&syear=2010), но имела один прошлый год. Это противоречило бы дампу, который вы показываете выше. Что правильно? –

+0

там также есть некоторые провинции, которые делают DST, и некоторые, которые отказываются судить по этому [debian bug report] (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502430), хотя это из 2008, и я не знаю, что такое текущий статус. – Gordon

ответ

1

Я не уверен, что это неправильно?

http://en.wikipedia.org/wiki/Time_in_Argentina

государства, как правило, Аргентина находится на UTC -3, и что они иногда наблюдают летнее время. Что сделало бы UTC -2?

С другой стороны, в статье говорится, что в настоящее время они не соблюдают летнее время, чтобы сохранить их в UTC-3 (-10800)? Возможно, у вашей базы данных времени старая?