2012-03-01 3 views
6

У меня есть скрипт (ЗШ, чтобы быть точным), который использует«US/Eastern» и «US/Central» и «US/Pacific» устарели для strftime или просто PHP?

strftime "%I:%M %p %Z (%a, %b %d)" "$EPOCHSECONDS"

генерировать «текущее время», такие как

«2:45 вечера CST (чт, март 01) "

Это необходимо, чтобы иметь возможность отображать время в различных часовых поясах США, и поэтому я использую„US/Eastern“,„US/Central“и„US/Pacific“так:

export TZ='US/Eastern' 
strftime "%I:%M %p %Z (%a, %b %d)" "$EPOCHSECONDS" 

Кажется, что все работает отлично, и я предпочитаю использовать TZ = 'America/CityName', потому что он не требует, чтобы я знал, в каком городе находится TZ, мне просто нужно сказать, какой TZ я хочу.

Однако, я случился через http://www.php.net/manual/en/timezones.others.php и увидел, что он говорит

Пожалуйста, не используйте любого из перечисленных здесь часовых поясов (помимо UTC), они существуют только для обратной совместимости причин.

Я не знаю, каковы проблемы с названиями US/Region, но мне любопытно узнать, может ли их использовать, вероятно, вызовет проблему в обозримом будущем или они по-прежнему безопасны для использования ? Это просто PHP, который им не нравится, или все отходят от них?

ответ

7

Стандартный формат именования часовых поясов в базе данных Olson - Continent/City. «Старые» имена, которые вы упоминаете как US/Eastern, US/Central и многие другие, перечислены как ссылки обратной совместимости в исходном дистрибутиве tzdata (в файле «назад»). Согласно комментарию в верхней части файла, эти имена, возможно, стали ссылками обратной совместимости в конце 1993 года.

Я думаю, что я помню, как читал, что этот стандарт принят, потому что считалось более стабильным: геополитическим (страной) изменения границ, города никогда не перемещаются. Возможно, также потому, что названия, такие как «Восточный» и «Центральный», считаются более запутанными, потому что они означают разные часовые пояса в разных частях мира. Однако на данный момент я не могу найти ссылок на обоснование именования, поэтому не цитируйте меня на этом.

Предпочтительны названия стран континента/города. Обратите внимание, что операционные системы, такие как Debian и Ubuntu, просят вас выбрать системный часовой пояс, используя эти имена (если они не автоопределяют его во время установки). Используя эти имена, вам, как вы говорите, на самом деле не потребуется, «знаете, в каком городе который TZ ", потому что название города, ну, часть названия часового пояса! Поэтому, если вы узнали имена континентов/городов вместо или в дополнение к названиям стран/регионов, вы уже в порядке.

Это, как говорится, я не думаю, что эти имена когда-нибудь исчезнут. В списке рассылки часового пояса они, безусловно, всегда называются «обратная совместимость», а не «устаревшими» и предназначены для того, чтобы оставаться, несмотря на то, что рекомендует PHP.

 Смежные вопросы

  • Нет связанных вопросов^_^