Эволюция часовых зон в PHP: что добавлено, что удалено и зачем — от PHP 5.6 до PHP 8

Лекция



В этой статье разбираются изменения в списке поддерживаемых часовых зон в PHP, произошедшие между версиями PHP 5.6 и PHP 8. Объясняется, почему одни зоны были удалены или переименованы, зачем это сделано и как это влияет на разработку. Также даются советы, как работать с timezone-функциями и обеспечивать совместимость кода в разных версиях PHP.

Эволюция часовых зон в PHP: что добавлено, что удалено и зачем — от PHP 5.6 до PHP 8

Справочный контекст

PHP использует список часовых зон, основанный на базе данных tz (IANA), и регулярно обновляет его вместе с релизами. Функция timezone_identifiers_list() возвращает все доступные идентификаторы, включая новые и устаревшие, в зависимости от параметров

Переименование регионов: пример «Kiev → Kyiv» удаления и устаревшие зоны

Хотя полный перечень изменений между 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/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/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 она уже не совпадает по смещению.

Для чего и почему происходят изменения

  • Актуальность: идентификаторы часовых зон обновляются по мере изменений в геополитике и административных решениях.

  • Корректность: корректное отображение времени (включая перевод на летнее/зимнее время) критически важно.

  • Совместимость: для корректной работы и обратной совместимости, особенно в проектах с миграциями, нужно учитывать оба варианта идентификаторов.

Как это влияет на PHP-разработку

  • Функции работы с 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 исихраним в текстовый файл

создано: 2025-08-14
обновлено: 2025-08-14
21



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)