Надежные ли PHP-часовые пояса? - PullRequest
2 голосов
/ 28 октября 2010

Были ли у вас какие-либо проблемы с преобразованием часовых поясов PHP через функцию 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 часа).

Но реальность такова, что текущее смещение составляет четыре часа.

Пожалуйста, чего мне не хватает? Извините, если выглядит как домашнее задание, но я много раз искал и пробовал, прежде чем писать вопрос.

Спасибо.

Edit: Спасибо за ответы. Я понимаю, что переходы PHP жестко закодированы в установках PHP dll.s, поэтому, если какое-либо правительство страны решит изменить свои временные политики, getTransitions устареет, если вы не обновите установку PHP (что не так просто, если у вас есть производственная среда или вы используете общий ресурс). хостинг).

Итак, новый вопрос: существуют ли какие-либо веб-сервисы или динамические API, чтобы узнать текущую задержку (или будущую задержку) для определенного часового пояса, например http://worldtimeengine.com/api/, но, возможно, бесплатно?

1 Ответ

1 голос
/ 28 октября 2010

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

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

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

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

...