Лекция
В этой статье разбираются изменения в списке поддерживаемых часовых зон в PHP, произошедшие между версиями PHP 5.6 и PHP 8. Объясняется, почему одни зоны были удалены или переименованы, зачем это сделано и как это влияет на разработку. Также даются советы, как работать с timezone-функциями и обеспечивать совместимость кода в разных версиях PHP.
PHP использует список часовых зон, основанный на базе данных tz (IANA), и регулярно обновляет его вместе с релизами. Функция timezone_identifiers_list() возвращает все доступные идентификаторы, включая новые и устаревшие, в зависимости от параметров
Хотя полный перечень изменений между PHP 5.6 и PHP 8 не указан явно в документации PHP, можно отметить, что устаревшие timezone-идентификаторы постепенно удалялись или заменялись в соответствии с официальными рекомендациями IANA. мы проведем исследование для этого , например, обнаружил 6 устаревших идентификаторов между PHP 5.6.20 и PHP 8.2.0
Europe/Zaporozhye Europe/Uzhgorod
Обе эти зоны — Europe/Zaporozhye и Europe/Uzhgorod — в старых версиях PHP (включая 5.6) уже существовали, и в новых версиях PHP 8 они считаются устаревшими, но пока не удалены.
История:
Эти зоны появились в базе IANA в 1990-х как отдельные часовые зоны для отдельных регионов Украины (Запорожье и Ужгород), где когда-то были различия во времени.
С середины 1990-х эти регионы полностью синхронизированы с основной зоной Europe/Kiev (а теперь Europe/Kyiv), поэтому отдельные идентификаторы больше не нужны.
В последних версиях tzdata они помечены как deprecated и являются алиасами на Europe/Kyiv.
В PHP 8:
Europe/Zaporozhye → алиас Europe/Kyiv
Europe/Uzhgorod → алиас Europe/Kyiv
То есть в PHP 5.6 и PHP 8 эти зоны формально есть, но в PHP 8 они уже не несут уникальных правил времени.
Старая тайм-зона, соответствующая Europe/Kyiv, — это Europe/Kiev.
История:
До конца 2022 года в базе IANA использовалось название Europe/Kiev, основанное на русскоязычной транслитерации.
В октябре 2022 года в tzdata 2022b идентификатор был переименован в Europe/Kyiv, чтобы соответствовать украинской латинской транслитерации.
В PHP 5.6 и вплоть до PHP 8.1 будет доступен только Europe/Kiev. В PHP 8.2 появился Europe/Kyiv, но Europe/Kiev остался как устаревший алиас для совместимости.
На новых версиях лучше использовать Europe/Kyiv, но если ваш код должен работать и в старом PHP, то придется проверять и подменять название при необходимости.
Одним из ключевых изменений было переименование зоны Europe/Kiev на Europe/Kyiv в новой версии базы часовых зон. Это отражает актуальное официальное написание названия столицы Украины
В PHP версии до 8.2 включительно использовался старый идентификатор Europe/Kiev, а начиная с PHP 8.2 — Europe/Kyiv. Чтобы избежать сбоев, особенно в проектах, где сохранялись старые значения, в WordPress были внесены изменения: он добавил поддержку обоих вариантов и использует константу DateTimeZone::ALL_WITH_BC, чтобы учитывать устаревшие идентификаторы при валидации и нормализации
Старая тайм-зона, эквивалентная Pacific/Kanton, — это Pacific/Enderbury.
История:
До обновлений базы IANA в 2021 году остров Кантона (Кирибати) использовал идентификатор Pacific/Enderbury.
После уточнения географических названий и административного деления был введен новый идентификатор Pacific/Kanton, а Pacific/Enderbury объявлен устаревшим (backward-совместимость сохраняется через псевдонимы).
В PHP 5.6 вы найдете только Pacific/Enderbury.
Если в старом коде задать Pacific/Enderbury, на новых версиях PHP он будет работать как алиас Pacific/Kanton, но лучше обновить на актуальное имя, чтобы избежать предупреждений в будущем.
Asia/Qostanay
Старая тайм-зона, наиболее близкая к Asia/Qostanay, — это Asia/Almaty.
История:
До октября 2018 года Костанайская область Казахстана в базе IANA не имела отдельного идентификатора и использовала зону Asia/Almaty.
В октябре 2018 года в tz-базе была добавлена отдельная зона Asia/Qostanay (UTC+6) для отражения того, что регион перешел на постоянное время, отличное от некоторых других областей Казахстана.
В PHP 5.6 этой зоны еще не было, поэтому старый код мог использовать:
date_default_timezone_set('Asia/Almaty');
как эквивалент, но с оговоркой, что после появления Asia/Qostanay их временные режимы могут расходиться в исторических данных.
America/Punta_Arenas
В базе часовых зон IANA старая зона, которая была близка по времени к America/Punta_Arenas, — это America/Santiago.
Исторически:
До 2016 года Чилийская Патагония (город Пунта-Аренас) использовала то же время, что и Сантьяго, поэтому в PHP 5.6 America/Punta_Arenas как отдельной зоны не существовало — использовалась America/Santiago.
С конца 2016 года регион Пунта-Аренас перешел на постоянное UTC−3, без перехода на летнее/зимнее время, и в базе tz появился новый идентификатор America/Punta_Arenas.
То есть, если у вас в старом коде или в PHP 5.6 нет этой зоны, безопасный аналог — America/Santiago, но с пониманием, что после 2016 она уже не совпадает по смещению.
Актуальность: идентификаторы часовых зон обновляются по мере изменений в геополитике и административных решениях.
Корректность: корректное отображение времени (включая перевод на летнее/зимнее время) критически важно.
Совместимость: для корректной работы и обратной совместимости, особенно в проектах с миграциями, нужно учитывать оба варианта идентификаторов.
Функции работы с timezone: при использовании timezone_identifiers_list() лучше передавать флаг DateTimeZone::ALL_WITH_BC, чтобы включать устаревшие зоны .
Нормализация входных данных: если код или пользователь вводят старые идентификаторы, стоит преобразовывать их к актуальным.
Тесты и валидация: в тестовых сценариях и настройках рекомендуется использовать “безопасные” идентификаторы, например Europe/Helsinki, близкие по расположению, но стабильные
// Получение всех идентификаторов (включая устаревшие) $allZones = DateTimeZone::ALL_WITH_BC ? DateTimeZone::listIdentifiers(DateTimeZone::ALL_WITH_BC) : DateTimeZone::listIdentifiers(); // Валидация timezone с учетом устаревших значений $tz = 'Europe/Kiev'; if (!in_array($tz, $allZones, true)) { $tz = 'Europe/Kyiv'; // замена на актуальный вариант } date_default_timezone_set($tz);
Если вы используется старую версию пхп но хотите сохранять новые тайм заны то вам нужно переопределить системый класс
class DateTimeZoneForPhp56 extends \DateTimeZone { public function __construct($timezone) { //in php v8.2 Added: // America/Nuuk // America/Punta_Arenas // Asia/Qostanay // Europe/Kyiv // Pacific/Kanton //in php v8.2 Removed: // America/Godthab // America/Nipigon // America/Rainy_River // America/Thunder_Bay // Australia/Currie // Europe/Kiev // Europe/Uzhgorod // Europe/Zaporozhye // Pacific/Enderbury switch ($timezone) { case 'Europe/Kyiv' : case 'Europe/Uzhgorod' : case 'Europe/Zaporozhye' : $timezone = 'Europe/Kiev'; break; case 'America/Nuuk' : $timezone = 'America/Godthab'; break; case 'America/Punta_Arenas' : $timezone = 'America/Santiago'; break; case 'Asia/Qostanay' : $timezone = 'Asia/Almaty'; break; case 'Pacific/Kanton' : $timezone = 'Pacific/Enderbury'; break; } parent::__construct($timezone); } }
Для определения разнницы между списком старый и новых тайм зон выполним срипт
$textOld = << Africa/Abidjan *** [424] => UTC TXT; $textNew = << Africa/Abidjan *** [419] => UTC TXT;
// Функция для парсинга текстового массива function parseTextToArray($text) { $lines = explode("\n", $text); $values = []; foreach ($lines as $line) { if (preg_match('/=>\s*(.+)$/', $line, $matches)) { $values[] = trim($matches ); } } return array_unique($values); } // Парсим текст в массивы $oldArray = parseTextToArray($textOld); $newArray = parseTextToArray($textNew); // Сравнение $added = array_diff($newArray, $oldArray); $removed = array_diff($oldArray, $newArray); // Вывод echo "✅ Добавлены:\n"; foreach ($added as $zone) { echo " + $zone\n"; } echo "\n❌ Удалены:\n"; foreach ($removed as $zone) { echo " - $zone\n"; }
✅ Добавлены:
+ America/Nuuk
+ America/Punta_Arenas
+ Asia/Qostanay
+ Europe/Kyiv
+ Pacific/Kanton
❌ Удалены:
- America/Godthab
- America/Nipigon
- America/Rainy_River
- America/Thunder_Bay
- Australia/Currie
- Europe/Kiev
- Europe/Uzhgorod
- Europe/Zaporozhye
- Pacific/Enderbury
- Pacific/Johnston
для полуения всех тайм зоны в php 5.6 мы использовали вызов print_r(DateTimeZone::listIdentifiers()); и сохранили результат в текстовый файл
=> Africa/Abidjan => Africa/Accra => Africa/Addis_Ababa => Africa/Algiers => Africa/Asmara => Africa/Bamako => Africa/Bangui => Africa/Banjul => Africa/Bissau => Africa/Blantyre [10] => Africa/Brazzaville [11] => Africa/Bujumbura [12] => Africa/Cairo [13] => Africa/Casablanca [14] => Africa/Ceuta [15] => Africa/Conakry [16] => Africa/Dakar [17] => Africa/Dar_es_Salaam [18] => Africa/Djibouti [19] => Africa/Douala [20] => Africa/El_Aaiun [21] => Africa/Freetown [22] => Africa/Gaborone [23] => Africa/Harare [24] => Africa/Johannesburg [25] => Africa/Juba [26] => Africa/Kampala [27] => Africa/Khartoum [28] => Africa/Kigali [29] => Africa/Kinshasa [30] => Africa/Lagos [31] => Africa/Libreville [32] => Africa/Lome [33] => Africa/Luanda [34] => Africa/Lubumbashi [35] => Africa/Lusaka [36] => Africa/Malabo [37] => Africa/Maputo [38] => Africa/Maseru [39] => Africa/Mbabane [40] => Africa/Mogadishu [41] => Africa/Monrovia [42] => Africa/Nairobi [43] => Africa/Ndjamena [44] => Africa/Niamey [45] => Africa/Nouakchott [46] => Africa/Ouagadougou [47] => Africa/Porto-Novo [48] => Africa/Sao_Tome [49] => Africa/Tripoli [50] => Africa/Tunis [51] => Africa/Windhoek [52] => America/Adak [53] => America/Anchorage [54] => America/Anguilla [55] => America/Antigua [56] => America/Araguaina [57] => America/Argentina/Buenos_Aires [58] => America/Argentina/Catamarca [59] => America/Argentina/Cordoba [60] => America/Argentina/Jujuy [61] => America/Argentina/La_Rioja [62] => America/Argentina/Mendoza [63] => America/Argentina/Rio_Gallegos [64] => America/Argentina/Salta [65] => America/Argentina/San_Juan [66] => America/Argentina/San_Luis [67] => America/Argentina/Tucuman [68] => America/Argentina/Ushuaia [69] => America/Aruba [70] => America/Asuncion [71] => America/Atikokan [72] => America/Bahia [73] => America/Bahia_Banderas [74] => America/Barbados [75] => America/Belem [76] => America/Belize [77] => America/Blanc-Sablon [78] => America/Boa_Vista [79] => America/Bogota [80] => America/Boise [81] => America/Cambridge_Bay [82] => America/Campo_Grande [83] => America/Cancun [84] => America/Caracas [85] => America/Cayenne [86] => America/Cayman [87] => America/Chicago [88] => America/Chihuahua [89] => America/Costa_Rica [90] => America/Creston [91] => America/Cuiaba [92] => America/Curacao [93] => America/Danmarkshavn [94] => America/Dawson [95] => America/Dawson_Creek [96] => America/Denver [97] => America/Detroit [98] => America/Dominica [99] => America/Edmonton [100] => America/Eirunepe [101] => America/El_Salvador [102] => America/Fort_Nelson [103] => America/Fortaleza [104] => America/Glace_Bay [105] => America/Godthab [106] => America/Goose_Bay [107] => America/Grand_Turk [108] => America/Grenada [109] => America/Guadeloupe [110] => America/Guatemala [111] => America/Guayaquil [112] => America/Guyana [113] => America/Halifax [114] => America/Havana [115] => America/Hermosillo [116] => America/Indiana/Indianapolis [117] => America/Indiana/Knox [118] => America/Indiana/Marengo [119] => America/Indiana/Petersburg [120] => America/Indiana/Tell_City [121] => America/Indiana/Vevay [122] => America/Indiana/Vincennes [123] => America/Indiana/Winamac [124] => America/Inuvik [125] => America/Iqaluit [126] => America/Jamaica [127] => America/Juneau [128] => America/Kentucky/Louisville [129] => America/Kentucky/Monticello [130] => America/Kralendijk [131] => America/La_Paz [132] => America/Lima [133] => America/Los_Angeles [134] => America/Lower_Princes [135] => America/Maceio [136] => America/Managua [137] => America/Manaus [138] => America/Marigot [139] => America/Martinique [140] => America/Matamoros [141] => America/Mazatlan [142] => America/Menominee [143] => America/Merida [144] => America/Metlakatla [145] => America/Mexico_City [146] => America/Miquelon [147] => America/Moncton [148] => America/Monterrey [149] => America/Montevideo [150] => America/Montserrat [151] => America/Nassau [152] => America/New_York [153] => America/Nipigon [154] => America/Nome [155] => America/Noronha [156] => America/North_Dakota/Beulah [157] => America/North_Dakota/Center [158] => America/North_Dakota/New_Salem [159] => America/Ojinaga [160] => America/Panama [161] => America/Pangnirtung [162] => America/Paramaribo [163] => America/Phoenix [164] => America/Port-au-Prince [165] => America/Port_of_Spain [166] => America/Porto_Velho [167] => America/Puerto_Rico [168] => America/Rainy_River [169] => America/Rankin_Inlet [170] => America/Recife [171] => America/Regina [172] => America/Resolute [173] => America/Rio_Branco [174] => America/Santarem [175] => America/Santiago [176] => America/Santo_Domingo [177] => America/Sao_Paulo [178] => America/Scoresbysund [179] => America/Sitka [180] => America/St_Barthelemy [181] => America/St_Johns [182] => America/St_Kitts [183] => America/St_Lucia [184] => America/St_Thomas [185] => America/St_Vincent [186] => America/Swift_Current [187] => America/Tegucigalpa [188] => America/Thule [189] => America/Thunder_Bay [190] => America/Tijuana [191] => America/Toronto [192] => America/Tortola [193] => America/Vancouver [194] => America/Whitehorse [195] => America/Winnipeg [196] => America/Yakutat [197] => America/Yellowknife [198] => Antarctica/Casey [199] => Antarctica/Davis [200] => Antarctica/DumontDUrville [201] => Antarctica/Macquarie [202] => Antarctica/Mawson [203] => Antarctica/McMurdo [204] => Antarctica/Palmer [205] => Antarctica/Rothera [206] => Antarctica/Syowa [207] => Antarctica/Troll [208] => Antarctica/Vostok [209] => Arctic/Longyearbyen [210] => Asia/Aden [211] => Asia/Almaty [212] => Asia/Amman [213] => Asia/Anadyr [214] => Asia/Aqtau [215] => Asia/Aqtobe [216] => Asia/Ashgabat [217] => Asia/Atyrau [218] => Asia/Baghdad [219] => Asia/Bahrain [220] => Asia/Baku [221] => Asia/Bangkok [222] => Asia/Barnaul [223] => Asia/Beirut [224] => Asia/Bishkek [225] => Asia/Brunei [226] => Asia/Chita [227] => Asia/Choibalsan [228] => Asia/Colombo [229] => Asia/Damascus [230] => Asia/Dhaka [231] => Asia/Dili [232] => Asia/Dubai [233] => Asia/Dushanbe [234] => Asia/Famagusta [235] => Asia/Gaza [236] => Asia/Hebron [237] => Asia/Ho_Chi_Minh [238] => Asia/Hong_Kong [239] => Asia/Hovd [240] => Asia/Irkutsk [241] => Asia/Jakarta [242] => Asia/Jayapura [243] => Asia/Jerusalem [244] => Asia/Kabul [245] => Asia/Kamchatka [246] => Asia/Karachi [247] => Asia/Kathmandu [248] => Asia/Khandyga [249] => Asia/Kolkata [250] => Asia/Krasnoyarsk [251] => Asia/Kuala_Lumpur [252] => Asia/Kuching [253] => Asia/Kuwait [254] => Asia/Macau [255] => Asia/Magadan [256] => Asia/Makassar [257] => Asia/Manila [258] => Asia/Muscat [259] => Asia/Nicosia [260] => Asia/Novokuznetsk [261] => Asia/Novosibirsk [262] => Asia/Omsk [263] => Asia/Oral [264] => Asia/Phnom_Penh [265] => Asia/Pontianak [266] => Asia/Pyongyang [267] => Asia/Qatar [268] => Asia/Qyzylorda [269] => Asia/Riyadh [270] => Asia/Sakhalin [271] => Asia/Samarkand [272] => Asia/Seoul [273] => Asia/Shanghai [274] => Asia/Singapore [275] => Asia/Srednekolymsk [276] => Asia/Taipei [277] => Asia/Tashkent [278] => Asia/Tbilisi [279] => Asia/Tehran [280] => Asia/Thimphu [281] => Asia/Tokyo [282] => Asia/Tomsk [283] => Asia/Ulaanbaatar [284] => Asia/Urumqi [285] => Asia/Ust-Nera [286] => Asia/Vientiane [287] => Asia/Vladivostok [288] => Asia/Yakutsk [289] => Asia/Yangon [290] => Asia/Yekaterinburg [291] => Asia/Yerevan [292] => Atlantic/Azores [293] => Atlantic/Bermuda [294] => Atlantic/Canary [295] => Atlantic/Cape_Verde [296] => Atlantic/Faroe [297] => Atlantic/Madeira [298] => Atlantic/Reykjavik [299] => Atlantic/South_Georgia [300] => Atlantic/St_Helena [301] => Atlantic/Stanley [302] => Australia/Adelaide [303] => Australia/Brisbane [304] => Australia/Broken_Hill [305] => Australia/Currie [306] => Australia/Darwin [307] => Australia/Eucla [308] => Australia/Hobart [309] => Australia/Lindeman [310] => Australia/Lord_Howe [311] => Australia/Melbourne [312] => Australia/Perth [313] => Australia/Sydney [314] => Europe/Amsterdam [315] => Europe/Andorra [316] => Europe/Astrakhan [317] => Europe/Athens [318] => Europe/Belgrade [319] => Europe/Berlin [320] => Europe/Bratislava [321] => Europe/Brussels [322] => Europe/Bucharest [323] => Europe/Budapest [324] => Europe/Busingen [325] => Europe/Chisinau [326] => Europe/Copenhagen [327] => Europe/Dublin [328] => Europe/Gibraltar [329] => Europe/Guernsey [330] => Europe/Helsinki [331] => Europe/Isle_of_Man [332] => Europe/Istanbul [333] => Europe/Jersey [334] => Europe/Kaliningrad [335] => Europe/Kiev [336] => Europe/Kirov [337] => Europe/Lisbon [338] => Europe/Ljubljana [339] => Europe/London [340] => Europe/Luxembourg [341] => Europe/Madrid [342] => Europe/Malta [343] => Europe/Mariehamn [344] => Europe/Minsk [345] => Europe/Monaco [346] => Europe/Moscow [347] => Europe/Oslo [348] => Europe/Paris [349] => Europe/Podgorica [350] => Europe/Prague [351] => Europe/Riga [352] => Europe/Rome [353] => Europe/Samara [354] => Europe/San_Marino [355] => Europe/Sarajevo [356] => Europe/Saratov [357] => Europe/Simferopol [358] => Europe/Skopje [359] => Europe/Sofia [360] => Europe/Stockholm [361] => Europe/Tallinn [362] => Europe/Tirane [363] => Europe/Ulyanovsk [364] => Europe/Uzhgorod [365] => Europe/Vaduz [366] => Europe/Vatican [367] => Europe/Vienna [368] => Europe/Vilnius [369] => Europe/Volgograd [370] => Europe/Warsaw [371] => Europe/Zagreb [372] => Europe/Zaporozhye [373] => Europe/Zurich [374] => Indian/Antananarivo [375] => Indian/Chagos [376] => Indian/Christmas [377] => Indian/Cocos [378] => Indian/Comoro [379] => Indian/Kerguelen [380] => Indian/Mahe [381] => Indian/Maldives [382] => Indian/Mauritius [383] => Indian/Mayotte [384] => Indian/Reunion [385] => Pacific/Apia [386] => Pacific/Auckland [387] => Pacific/Bougainville [388] => Pacific/Chatham [389] => Pacific/Chuuk [390] => Pacific/Easter [391] => Pacific/Efate [392] => Pacific/Enderbury [393] => Pacific/Fakaofo [394] => Pacific/Fiji [395] => Pacific/Funafuti [396] => Pacific/Galapagos [397] => Pacific/Gambier [398] => Pacific/Guadalcanal [399] => Pacific/Guam [400] => Pacific/Honolulu [401] => Pacific/Johnston [402] => Pacific/Kiritimati [403] => Pacific/Kosrae [404] => Pacific/Kwajalein [405] => Pacific/Majuro [406] => Pacific/Marquesas [407] => Pacific/Midway [408] => Pacific/Nauru [409] => Pacific/Niue [410] => Pacific/Norfolk [411] => Pacific/Noumea [412] => Pacific/Pago_Pago [413] => Pacific/Palau [414] => Pacific/Pitcairn [415] => Pacific/Pohnpei [416] => Pacific/Port_Moresby [417] => Pacific/Rarotonga [418] => Pacific/Saipan [419] => Pacific/Tahiti [420] => Pacific/Tarawa [421] => Pacific/Tongatapu [422] => Pacific/Wake [423] => Pacific/Wallis [424] => UTC
для полуения всех тайм зоны в php 8.1 мы использовали вызов print_r(DateTimeZone::listIdentifiers()); и сохранили результат в текстовый файл
=> Africa/Abidjan => Africa/Accra => Africa/Addis_Ababa => Africa/Algiers => Africa/Asmara => Africa/Bamako => Africa/Bangui => Africa/Banjul => Africa/Bissau => Africa/Blantyre [10] => Africa/Brazzaville [11] => Africa/Bujumbura [12] => Africa/Cairo [13] => Africa/Casablanca [14] => Africa/Ceuta [15] => Africa/Conakry [16] => Africa/Dakar [17] => Africa/Dar_es_Salaam [18] => Africa/Djibouti [19] => Africa/Douala [20] => Africa/El_Aaiun [21] => Africa/Freetown [22] => Africa/Gaborone [23] => Africa/Harare [24] => Africa/Johannesburg [25] => Africa/Juba [26] => Africa/Kampala [27] => Africa/Khartoum [28] => Africa/Kigali [29] => Africa/Kinshasa [30] => Africa/Lagos [31] => Africa/Libreville [32] => Africa/Lome [33] => Africa/Luanda [34] => Africa/Lubumbashi [35] => Africa/Lusaka [36] => Africa/Malabo [37] => Africa/Maputo [38] => Africa/Maseru [39] => Africa/Mbabane [40] => Africa/Mogadishu [41] => Africa/Monrovia [42] => Africa/Nairobi [43] => Africa/Ndjamena [44] => Africa/Niamey [45] => Africa/Nouakchott [46] => Africa/Ouagadougou [47] => Africa/Porto-Novo [48] => Africa/Sao_Tome [49] => Africa/Tripoli [50] => Africa/Tunis [51] => Africa/Windhoek [52] => America/Adak [53] => America/Anchorage [54] => America/Anguilla [55] => America/Antigua [56] => America/Araguaina [57] => America/Argentina/Buenos_Aires [58] => America/Argentina/Catamarca [59] => America/Argentina/Cordoba [60] => America/Argentina/Jujuy [61] => America/Argentina/La_Rioja [62] => America/Argentina/Mendoza [63] => America/Argentina/Rio_Gallegos [64] => America/Argentina/Salta [65] => America/Argentina/San_Juan [66] => America/Argentina/San_Luis [67] => America/Argentina/Tucuman [68] => America/Argentina/Ushuaia [69] => America/Aruba [70] => America/Asuncion [71] => America/Atikokan [72] => America/Bahia [73] => America/Bahia_Banderas [74] => America/Barbados [75] => America/Belem [76] => America/Belize [77] => America/Blanc-Sablon [78] => America/Boa_Vista [79] => America/Bogota [80] => America/Boise [81] => America/Cambridge_Bay [82] => America/Campo_Grande [83] => America/Cancun [84] => America/Caracas [85] => America/Cayenne [86] => America/Cayman [87] => America/Chicago [88] => America/Chihuahua [89] => America/Costa_Rica [90] => America/Creston [91] => America/Cuiaba [92] => America/Curacao [93] => America/Danmarkshavn [94] => America/Dawson [95] => America/Dawson_Creek [96] => America/Denver [97] => America/Detroit [98] => America/Dominica [99] => America/Edmonton [100] => America/Eirunepe [101] => America/El_Salvador [102] => America/Fort_Nelson [103] => America/Fortaleza [104] => America/Glace_Bay [105] => America/Goose_Bay [106] => America/Grand_Turk [107] => America/Grenada [108] => America/Guadeloupe [109] => America/Guatemala [110] => America/Guayaquil [111] => America/Guyana [112] => America/Halifax [113] => America/Havana [114] => America/Hermosillo [115] => America/Indiana/Indianapolis [116] => America/Indiana/Knox [117] => America/Indiana/Marengo [118] => America/Indiana/Petersburg [119] => America/Indiana/Tell_City [120] => America/Indiana/Vevay [121] => America/Indiana/Vincennes [122] => America/Indiana/Winamac [123] => America/Inuvik [124] => America/Iqaluit [125] => America/Jamaica [126] => America/Juneau [127] => America/Kentucky/Louisville [128] => America/Kentucky/Monticello [129] => America/Kralendijk [130] => America/La_Paz [131] => America/Lima [132] => America/Los_Angeles [133] => America/Lower_Princes [134] => America/Maceio [135] => America/Managua [136] => America/Manaus [137] => America/Marigot [138] => America/Martinique [139] => America/Matamoros [140] => America/Mazatlan [141] => America/Menominee [142] => America/Merida [143] => America/Metlakatla [144] => America/Mexico_City [145] => America/Miquelon [146] => America/Moncton [147] => America/Monterrey [148] => America/Montevideo [149] => America/Montserrat [150] => America/Nassau [151] => America/New_York [152] => America/Nome [153] => America/Noronha [154] => America/North_Dakota/Beulah [155] => America/North_Dakota/Center [156] => America/North_Dakota/New_Salem [157] => America/Nuuk [158] => America/Ojinaga [159] => America/Panama [160] => America/Pangnirtung [161] => America/Paramaribo [162] => America/Phoenix [163] => America/Port-au-Prince [164] => America/Port_of_Spain [165] => America/Porto_Velho [166] => America/Puerto_Rico [167] => America/Punta_Arenas [168] => America/Rankin_Inlet [169] => America/Recife [170] => America/Regina [171] => America/Resolute [172] => America/Rio_Branco [173] => America/Santarem [174] => America/Santiago [175] => America/Santo_Domingo [176] => America/Sao_Paulo [177] => America/Scoresbysund [178] => America/Sitka [179] => America/St_Barthelemy [180] => America/St_Johns [181] => America/St_Kitts [182] => America/St_Lucia [183] => America/St_Thomas [184] => America/St_Vincent [185] => America/Swift_Current [186] => America/Tegucigalpa [187] => America/Thule [188] => America/Tijuana [189] => America/Toronto [190] => America/Tortola [191] => America/Vancouver [192] => America/Whitehorse [193] => America/Winnipeg [194] => America/Yakutat [195] => America/Yellowknife [196] => Antarctica/Casey [197] => Antarctica/Davis [198] => Antarctica/DumontDUrville [199] => Antarctica/Macquarie [200] => Antarctica/Mawson [201] => Antarctica/McMurdo [202] => Antarctica/Palmer [203] => Antarctica/Rothera [204] => Antarctica/Syowa [205] => Antarctica/Troll [206] => Antarctica/Vostok [207] => Arctic/Longyearbyen [208] => Asia/Aden [209] => Asia/Almaty [210] => Asia/Amman [211] => Asia/Anadyr [212] => Asia/Aqtau [213] => Asia/Aqtobe [214] => Asia/Ashgabat [215] => Asia/Atyrau [216] => Asia/Baghdad [217] => Asia/Bahrain [218] => Asia/Baku [219] => Asia/Bangkok [220] => Asia/Barnaul [221] => Asia/Beirut [222] => Asia/Bishkek [223] => Asia/Brunei [224] => Asia/Chita [225] => Asia/Choibalsan [226] => Asia/Colombo [227] => Asia/Damascus [228] => Asia/Dhaka [229] => Asia/Dili [230] => Asia/Dubai [231] => Asia/Dushanbe [232] => Asia/Famagusta [233] => Asia/Gaza [234] => Asia/Hebron [235] => Asia/Ho_Chi_Minh [236] => Asia/Hong_Kong [237] => Asia/Hovd [238] => Asia/Irkutsk [239] => Asia/Jakarta [240] => Asia/Jayapura [241] => Asia/Jerusalem [242] => Asia/Kabul [243] => Asia/Kamchatka [244] => Asia/Karachi [245] => Asia/Kathmandu [246] => Asia/Khandyga [247] => Asia/Kolkata [248] => Asia/Krasnoyarsk [249] => Asia/Kuala_Lumpur [250] => Asia/Kuching [251] => Asia/Kuwait [252] => Asia/Macau [253] => Asia/Magadan [254] => Asia/Makassar [255] => Asia/Manila [256] => Asia/Muscat [257] => Asia/Nicosia [258] => Asia/Novokuznetsk [259] => Asia/Novosibirsk [260] => Asia/Omsk [261] => Asia/Oral [262] => Asia/Phnom_Penh [263] => Asia/Pontianak [264] => Asia/Pyongyang [265] => Asia/Qatar [266] => Asia/Qostanay [267] => Asia/Qyzylorda [268] => Asia/Riyadh [269] => Asia/Sakhalin [270] => Asia/Samarkand [271] => Asia/Seoul [272] => Asia/Shanghai [273] => Asia/Singapore [274] => Asia/Srednekolymsk [275] => Asia/Taipei [276] => Asia/Tashkent [277] => Asia/Tbilisi [278] => Asia/Tehran [279] => Asia/Thimphu [280] => Asia/Tokyo [281] => Asia/Tomsk [282] => Asia/Ulaanbaatar [283] => Asia/Urumqi [284] => Asia/Ust-Nera [285] => Asia/Vientiane [286] => Asia/Vladivostok [287] => Asia/Yakutsk [288] => Asia/Yangon [289] => Asia/Yekaterinburg [290] => Asia/Yerevan [291] => Atlantic/Azores [292] => Atlantic/Bermuda [293] => Atlantic/Canary [294] => Atlantic/Cape_Verde [295] => Atlantic/Faroe [296] => Atlantic/Madeira [297] => Atlantic/Reykjavik [298] => Atlantic/South_Georgia [299] => Atlantic/St_Helena [300] => Atlantic/Stanley [301] => Australia/Adelaide [302] => Australia/Brisbane [303] => Australia/Broken_Hill [304] => Australia/Darwin [305] => Australia/Eucla [306] => Australia/Hobart [307] => Australia/Lindeman [308] => Australia/Lord_Howe [309] => Australia/Melbourne [310] => Australia/Perth [311] => Australia/Sydney [312] => Europe/Amsterdam [313] => Europe/Andorra [314] => Europe/Astrakhan [315] => Europe/Athens [316] => Europe/Belgrade [317] => Europe/Berlin [318] => Europe/Bratislava [319] => Europe/Brussels [320] => Europe/Bucharest [321] => Europe/Budapest [322] => Europe/Busingen [323] => Europe/Chisinau [324] => Europe/Copenhagen [325] => Europe/Dublin [326] => Europe/Gibraltar [327] => Europe/Guernsey [328] => Europe/Helsinki [329] => Europe/Isle_of_Man [330] => Europe/Istanbul [331] => Europe/Jersey [332] => Europe/Kaliningrad [333] => Europe/Kirov [334] => Europe/Kyiv [335] => Europe/Lisbon [336] => Europe/Ljubljana [337] => Europe/London [338] => Europe/Luxembourg [339] => Europe/Madrid [340] => Europe/Malta [341] => Europe/Mariehamn [342] => Europe/Minsk [343] => Europe/Monaco [344] => Europe/Moscow [345] => Europe/Oslo [346] => Europe/Paris [347] => Europe/Podgorica [348] => Europe/Prague [349] => Europe/Riga [350] => Europe/Rome [351] => Europe/Samara [352] => Europe/San_Marino [353] => Europe/Sarajevo [354] => Europe/Saratov [355] => Europe/Simferopol [356] => Europe/Skopje [357] => Europe/Sofia [358] => Europe/Stockholm [359] => Europe/Tallinn [360] => Europe/Tirane [361] => Europe/Ulyanovsk [362] => Europe/Vaduz [363] => Europe/Vatican [364] => Europe/Vienna [365] => Europe/Vilnius [366] => Europe/Volgograd [367] => Europe/Warsaw [368] => Europe/Zagreb [369] => Europe/Zurich [370] => Indian/Antananarivo [371] => Indian/Chagos [372] => Indian/Christmas [373] => Indian/Cocos [374] => Indian/Comoro [375] => Indian/Kerguelen [376] => Indian/Mahe [377] => Indian/Maldives [378] => Indian/Mauritius [379] => Indian/Mayotte [380] => Indian/Reunion [381] => Pacific/Apia [382] => Pacific/Auckland [383] => Pacific/Bougainville [384] => Pacific/Chatham [385] => Pacific/Chuuk [386] => Pacific/Easter [387] => Pacific/Efate [388] => Pacific/Fakaofo [389] => Pacific/Fiji [390] => Pacific/Funafuti [391] => Pacific/Galapagos [392] => Pacific/Gambier [393] => Pacific/Guadalcanal [394] => Pacific/Guam [395] => Pacific/Honolulu [396] => Pacific/Kanton [397] => Pacific/Kiritimati [398] => Pacific/Kosrae [399] => Pacific/Kwajalein [400] => Pacific/Majuro [401] => Pacific/Marquesas [402] => Pacific/Midway [403] => Pacific/Nauru [404] => Pacific/Niue [405] => Pacific/Norfolk [406] => Pacific/Noumea [407] => Pacific/Pago_Pago [408] => Pacific/Palau [409] => Pacific/Pitcairn [410] => Pacific/Pohnpei [411] => Pacific/Port_Moresby [412] => Pacific/Rarotonga [413] => Pacific/Saipan [414] => Pacific/Tahiti [415] => Pacific/Tarawa [416] => Pacific/Tongatapu [417] => Pacific/Wake [418] => Pacific/Wallis [419] => UTC
переходом от PHP 5.6 к PHP 8 список часовых зон стал более точным и актуальным, но такие изменения требуют внимания от разработчиков: нужно учитывать устаревшие идентификаторы, обеспечивать корректную обработку, сохранять совместимость и избегать ошибок при миграции и обновлении.
получиим все тайм зоны в php 5.6 исихраним в текстовый файл
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)