Страновые часовые пояса в PHP/Zend Framework
Есть ли в Zend Framework или PHP по умолчанию способ сопоставить страну (используя код страны) со списком часовых поясов? В качестве примера я пытаюсь повторить функциональность Google при поиске "времени в Австралии прямо сейчас", которое отображает все часовые пояса и города для этой страны.
1 ответ
Не уверен насчет Zend_Date, но нативный PHP может сделать это с PHP5.3 с
DateTimeZone::listIdentifiers
- Возвращает числовой индексный массив со всеми идентификаторами часовых поясов.
Пример:
print_r( DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, 'US') );
выходы:
Array
(
[0] => America/Adak
[1] => America/Anchorage
[2] => America/Boise
[3] => America/Chicago
[4] => America/Denver
[5] => America/Detroit
[6] => America/Indiana/Indianapolis
[7] => America/Indiana/Knox
[8] => America/Indiana/Marengo
[9] => America/Indiana/Petersburg
[10] => America/Indiana/Tell_City
[11] => America/Indiana/Vevay
[12] => America/Indiana/Vincennes
[13] => America/Indiana/Winamac
[14] => America/Juneau
[15] => America/Kentucky/Louisville
[16] => America/Kentucky/Monticello
[17] => America/Los_Angeles
[18] => America/Menominee
[19] => America/New_York
[20] => America/Nome
[21] => America/North_Dakota/Center
[22] => America/North_Dakota/New_Salem
[23] => America/Phoenix
[24] => America/Shiprock
[25] => America/Yakutat
[26] => Pacific/Honolulu
)
Обратите внимание, что страна должна быть указана в виде двухбуквенного кода страны, совместимого с ISO 3166-1. Очевидно, это означает, что "мы" - это не то же самое, что "США" (по крайней мере, я не получаю результат).