(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] => -9223372036854775808 [time] => -292277022657-01-27T08:29:52+0000 [offset] => 3600 [isdst] => 1 [abbr] => BST ) [1] => Array ( [ts] => -1691964000 [time] => 1916-05-21T02:00:00+0000 [offset] => 3600 [isdst] => 1 [abbr] => BST ) [2] => Array ( [ts] => -1680472800 [time] => 1916-10-01T02:00:00+0000 [offset] => 0 [isdst] => [abbr] => GMT ) )
Пример #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] => 1654184161 [time] => 2022-06-02T15:36:01+0000 [offset] => 3600 [isdst] => 1 [abbr] => BST ) [1] => Array ( [ts] => 1667091600 [time] => 2022-10-30T01:00:00+0000 [offset] => 0 [isdst] => [abbr] => GMT ) [2] => Array ( [ts] => 1679792400 [time] => 2023-03-26T01:00:00+0000 [offset] => 3600 [isdst] => 1 [abbr] => BST ) )