Перейти к содержимому

timezone_identifiers_list()

Введение

Идентификаторы часовых поясов PHP — это строки, используемые для указания часового пояса для заданной даты или времени. Они следуют формату Area/Location (например, America/New_York, Europe/London) и основаны на базе данных часовых поясов IANA. Эти идентификаторы можно использовать с функцией date_default_timezone_set() для установки часового пояса по умолчанию для скрипта или с классом DateTimeZone для создания нового объекта часового пояса.

Функция timezone_identifiers_list() возвращает массив всех поддерживаемых идентификаторов часовых поясов. Это полезно для создания выпадающих списков или проверки ввода пользователя.

Как использовать timezone_identifiers_list() в PHP?

php
<?php

$identifiers = timezone_identifiers_list();
print_r($identifiers);

Функция возвращает массив с числовыми индексами, содержащий строки вида Africa/Abidjan, America/New_York, Asia/Tokyo и т. д. Вы можете перебирать этот массив для отображения доступных часовых поясов:

php
<?php

foreach (timezone_identifiers_list() as $tz) {
    echo $tz . "\n";
}

Чтобы применить один из этих идентификаторов, передайте его в date_default_timezone_set() или new DateTimeZone(). Например, чтобы установить часовой пояс Eastern Standard Time (EST), используйте следующий код:

Как использовать идентификатор часового пояса в PHP?

php
<?php

date_default_timezone_set('America/New_York');

В качестве альтернативы вы можете использовать класс DateTimeZone для создания нового объекта часового пояса и указать идентификатор в качестве параметра. Например:

Как использовать класс DateTimeZone в PHP?

php
<?php

$timezone = new DateTimeZone('Asia/Tokyo');

Это создает новый объект часового пояса для часового пояса Asia/Tokyo.

Важно отметить, что некоторые идентификаторы часовых поясов могут не поддерживаться на всех системах или быть устаревшими. Для обеспечения совместимости и точности мы рекомендуем использовать базу данных часовых поясов, поддерживаемую Internet Assigned Numbers Authority (IANA).

В дополнение к стандартным идентификаторам часовых поясов, PHP также поддерживает пользовательские часовые пояса. Их можно указать с помощью смещения UTC. Например, чтобы указать смещение UTC на -8 часов, используйте следующий код:

Пример пользовательских часовых поясов в PHP

php
<?php

$timezone = new DateTimeZone('-08:00');

Это создает новый объект часового пояса со смещением UTC на -8 часов.

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

Практика

Which of the following is a valid timezone identifier in PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.