(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::getTransitions -- timezone_transitions_get — Возвращает информацию о переходах времени для часового пояса
Объектно-ориентированный стиль
$timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|falseПроцедурный стиль
$object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false
objectТолько для процедурного стиля: объект DateTimeZone, который возвращает функция timezone_open().
timestampBeginНачальная метка времени.
timestampEndКонечная метка времени.
Функция возвращает индексный массив массивов с информацией об исторических,
сезоннных и политико-административных переходах времени в хронологическом порядке, если выполнилась успешно, или false, если возникла ошибка.
Объекты DateTimeZone, которые оборачивают смещения 1-го типа со смещением относительно времени UTC
и 2-го типа с аббревиатурой названия часового пояса, не содержат переходов и вызов метода на таких объектах вернёт значение false.
При передаче аргумента timestampBegin первым элементом массива с результатами
становится массив с информацией о последнем на момент timestampBegin переходе.
| Ключ | Тип | Описание |
|---|---|---|
ts |
int | Метка времени Unix |
time |
string |
Строка времени в формате DateTimeInterface::ISO8601_EXPANDED для PHP 8.2 и более поздних выпусков
или в формате DateTimeInterface::ISO8601 для PHP 8.1 и предыдущих выпусков
|
offset |
int | Смещение относительно времени UTC в секундах |
isdst |
bool | Активно ли летнее время |
abbr |
string | Аббревиатура часового пояса |
Пример #1 Пример получения хронологии переходов времени функцией timezone_transitions_get()
<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));Вывод приведённого примера будет похож на:
Array
(
[0] => Array
(
[ts] => -2147483648
[time] => 1901-12-13T20:45:52+00:00
[offset] => -75
[isdst] =>
[abbr] => LMT
)
[1] => Array
(
[ts] => 442304971
[time] => 1847-12-01T00:01:15+00:00
[offset] => 0
[isdst] =>
[abbr] => GMT
)
[2] => Array
(
[ts] => -1691964000
[time] => 1916-05-21T02:00:00+00:00
[offset] => 3600
[isdst] => 1
[abbr] => BST
)
)
Пример #2 Пример работы функции timezone_transitions_get() с аргументом timestampBegin
<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions(time());
print_r(array_slice($transitions, 0, 3));Вывод приведённого примера будет похож на:
Array
(
[0] => Array
(
[ts] => 1759058251
[time] => 2025-09-28T11:17:31+00:00
[offset] => 3600
[isdst] => 1
[abbr] => BST
)
[1] => Array
(
[ts] => 1761440400
[time] => 2025-10-26T01:00:00+00:00
[offset] => 0
[isdst] =>
[abbr] => GMT
)
[2] => Array
(
[ts] => 1774746000
[time] => 2026-03-29T01:00:00+00:00
[offset] => 3600
[isdst] => 1
[abbr] => BST
)
)