(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::listIdentifiers -- timezone_identifiers_list — Возвращает индексный массив идентификаторов часовых поясов
Объектно-ориентированный стиль
$timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): arrayПроцедурный стиль
$timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): arrayМетод возвращает список » идентификаторов часовых поясов, которые определила администрация IANA.
Замечание: Для определения часового пояса клиента, например браузера, в JavaScript обращаются к объекту » Intl.DateTimeFormat или » Temporal.ZonedDateTime.
timezoneGroupКонстанта или комбинация констант класса DateTimeZone.
countryCodeДвухбуквенный код страны в верхнем регистре, совместимый со стандартом ISO 3166-1.
Замечание: Параметр требуется и влияет на результат только при установке для параметра
timezoneGroupфлагаDateTimeZone::PER_COUNTRY.
Метод возвращает массив идентификаторов часовых поясов. Возвращаются только неустаревшие элементы.
При передаче в параметр timezoneGroup флага DateTimeZone::ALL_WITH_BC
метод возвращает все идентификаторы часовых поясов, включая устаревшие.
| Версия | Описание |
|---|---|
| 8.0.0 |
До этой версии при ошибке возвращалось значение false.
|
| 7.1.0 |
Параметр countryCode теперь принимает значение null.
|
Пример #1 Пример получения списка идентификаторов часовых поясов с комментарием о расположении
<?php
$identifiers = DateTimeZone::listIdentifiers(DateTimeZone::ALL);
foreach ($identifiers as $tzid) {
$tz = new DateTimeZone($tzid);
$comments = $tz->getLocation()['comments'];
echo $tzid . " (" . ($comments ?: 'Whole region') . ")\n";
}Вывод приведённого примера будет похож на:
America/Antigua (Whole region) America/Araguaina (Tocantins) America/Argentina/Buenos_Aires (Buenos Aires (BA, CF)) America/Argentina/Catamarca (Catamarca (CT), Chubut (CH)) America/Argentina/Cordoba (Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF)) // (Только фрагмент вывода, из-за длины)
Пример #2 Пример получения списка идентификаторов конкретного региона
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers(DateTimeZone::ASIA);
for ($i = 0; $i < 5; $i++) {
echo "$timezone_identifiers[$i]\n";
}Вывод приведённого примера будет похож на:
Asia/Aden Asia/Almaty Asia/Amman Asia/Anadyr Asia/Aqtau
Пример #3 Пример получения списка идентификаторов двух регионов
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers(DateTimeZone::ASIA | DateTimeZone::PACIFIC);
echo join(', ', $timezone_identifiers);Вывод приведённого примера будет похож на:
Asia/Aden, Asia/Almaty, Asia/Amman, Asia/Anadyr, Asia/Aqtau, Asia/Aqtobe, Asia/Ashgabat, Asia/Atyrau, Asia/Baghdad, Asia/Bahrain, Asia/Baku, Asia/Bangkok, Asia/Barnaul, Asia/Beirut, Asia/Bishkek, Asia/Brunei, Asia/Chita, Asia/Choibalsan, Asia/Colombo, Asia/Damascus, Asia/Dhaka, Asia/Dili, Asia/Dubai, Asia/Dushanbe, Asia/Famagusta, Asia/Gaza, Asia/Hebron, Asia/Ho_Chi_Minh, Asia/Hong_Kong, Asia/Hovd, Asia/Irkutsk, Asia/Jakarta, Asia/Jayapura, Asia/Jerusalem, Asia/Kabul, Asia/Kamchatka, Asia/Karachi, Asia/Kathmandu, Asia/Khandyga, Asia/Kolkata, Asia/Krasnoyarsk, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Kuwait, Asia/Macau, Asia/Magadan, Asia/Makassar, Asia/Manila, Asia/Muscat, Asia/Nicosia, Asia/Novokuznetsk, Asia/Novosibirsk, Asia/Omsk, Asia/Oral, Asia/Phnom_Penh, Asia/Pontianak, Asia/Pyongyang, Asia/Qatar, Asia/Qostanay, Asia/Qyzylorda, Asia/Riyadh, Asia/Sakhalin, Asia/Samarkand, Asia/Seoul, Asia/Shanghai, Asia/Singapore, Asia/Srednekolymsk, Asia/Taipei, Asia/Tashkent, Asia/Tbilisi, Asia/Tehran, Asia/Thimphu, Asia/Tokyo, Asia/Tomsk, Asia/Ulaanbaatar, Asia/Urumqi, Asia/Ust-Nera, Asia/Vientiane, Asia/Vladivostok, Asia/Yakutsk, Asia/Yangon, Asia/Yekaterinburg, Asia/Yerevan, Pacific/Apia, Pacific/Auckland, Pacific/Bougainville, Pacific/Chatham, Pacific/Chuuk, Pacific/Easter, Pacific/Efate, Pacific/Fakaofo, Pacific/Fiji, Pacific/Funafuti, Pacific/Galapagos, Pacific/Gambier, Pacific/Guadalcanal, Pacific/Guam, Pacific/Honolulu, Pacific/Kanton, Pacific/Kiritimati, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro, Pacific/Marquesas, Pacific/Midway, Pacific/Nauru, Pacific/Niue, Pacific/Norfolk, Pacific/Noumea, Pacific/Pago_Pago, Pacific/Palau, Pacific/Pitcairn, Pacific/Pohnpei, Pacific/Port_Moresby, Pacific/Rarotonga, Pacific/Saipan, Pacific/Tahiti, Pacific/Tarawa, Pacific/Tongatapu, Pacific/Wake, Pacific/Wallis
Пример #4 Пример получения списка идентификаторов одной страны
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, "UA");
foreach ($timezone_identifiers as $identifier) {
echo "$identifier\n";
}Вывод приведённого примера будет похож на:
Europe/Kyiv Europe/Simferopol Europe/Uzhgorod Europe/Zaporozhye