W3docs

Часовые пояса PHP

Часовой пояс — это регион мира с единым стандартным временем. В PHP часовые пояса представлены строками, например "America/New_York".

Часовой пояс — это регион мира, в котором действует единое стандартное время для юридических, коммерческих и социальных целей. В PHP часовые пояса представлены строками, идентифицирующими географический регион, например "America/New_York" или "Europe/London".

Функции PHP для работы с часовыми поясами

PHP предоставляет несколько функций для работы с часовыми поясами. Ниже приведены наиболее часто используемые из них:

1. date_default_timezone_set()

Эта функция устанавливает часовой пояс по умолчанию, используемый всеми функциями даты/времени в скрипте. В качестве аргумента она принимает строку часового пояса, например "America/New_York" или "Europe/London".

2. date_default_timezone_get()

Эта функция возвращает часовой пояс по умолчанию, используемый всеми функциями даты/времени в скрипте.

3. timezone_identifiers_list()

Эта функция возвращает индексированный массив, содержащий все определённые идентификаторы часовых поясов.

4. timezone_abbreviations_list()

Эта функция возвращает ассоциативный массив, содержащий аббревиатуры часовых поясов и их смещения относительно UTC. (Примечание: устарела в PHP 8.1 и удалена в PHP 8.2. Используйте DateTimeZone::listIdentifiers() или современные ООП-классы.)

5. timezone_name_from_abbr()

Эта функция возвращает название часового пояса по его аббревиатуре.

6. DateTimeZone::getOffset()

Этот метод возвращает смещение часового пояса относительно UTC для заданного объекта DateTime.

Современный подход: Несмотря на то что процедурные функции, описанные выше, поддерживаются в устаревших версиях PHP, современная разработка на PHP рекомендует использовать классы DateTime и DateTimeZone. Они обеспечивают лучший объектно-ориентированный дизайн, автоматическую обработку перехода на летнее время и являются стандартом для современных PHP-приложений.

Примеры использования

Рассмотрим несколько практических примеров использования функций PHP для работы с часовыми поясами.

Пример 1: Установка часового пояса по умолчанию

Предположим, вы хотите установить часовой пояс по умолчанию "America/New_York". Для этого можно воспользоваться функцией date_default_timezone_set():

Установка часового пояса по умолчанию в PHP

date_default_timezone_set("America/New_York");

Это устанавливает часовой пояс по умолчанию "America/New_York".

Пример 2: Получение часового пояса по умолчанию

Предположим, вы хотите получить часовой пояс по умолчанию. Для этого можно воспользоваться функцией date_default_timezone_get(). Чтобы пример выполнялся независимо, сначала установим часовой пояс по умолчанию:

Получение часового пояса по умолчанию

php— editable, runs on the server

Это выводит "The default timezone is: UTC".

Пример 3: Список идентификаторов часовых поясов

Предположим, вы хотите получить список всех определённых идентификаторов часовых поясов. Для этого можно воспользоваться функцией timezone_identifiers_list():

Список идентификаторов часовых поясов в PHP

php— editable, runs on the server

Это выводит список всех определённых идентификаторов часовых поясов.

Пример 4: Конвертация часовых поясов с использованием современных классов

Для конвертации часовых поясов и автоматической обработки перехода на летнее время используйте классы DateTime и DateTimeZone:

Конвертация часовых поясов в PHP

php— editable, runs on the server

Это выводит конвертированное время в Лондоне с автоматическим учётом разницы в переходе на летнее время.

Заключение

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

Практика

Практика
Что можно сделать вывод об управлении часовыми поясами в PHP на основе информации, представленной на этом сайте?
Что можно сделать вывод об управлении часовыми поясами в PHP на основе информации, представленной на этом сайте?
Was this page helpful?