(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::getTransitions -- timezone_transitions_get — Returns all transitions for the timezone
Object-oriented style
$timestampBegin
= PHP_INT_MIN
, int$timestampEnd
= PHP_INT_MAX
): array|falseProcedural style
$object
, int$timestampBegin
= PHP_INT_MIN
, int$timestampEnd
= PHP_INT_MAX
): array|falseobject
Procedural style only: A DateTimeZone object returned by timezone_open()
timestampBegin
Begin timestamp.
timestampEnd
End timestamp.
Returns a numerically indexed array of transition arrays on success, or false
on failure. DateTimeZone objects wrapping type 1 (UTC offsets) and type 2 (abbreviations) do not contain any transitions, and calling this method on them will return false
.
If timestampBegin
is given, the first entry in the returned array will contain a transition element at the time of timestampBegin
.
Key | Type | Description |
---|---|---|
ts | int | Unix timestamp |
time | string | DateTimeInterface::ISO8601_EXPANDED (PHP 8.2 and later), or DateTimeInterface::ISO8601 (PHP 8.1 and lower) time string |
offset | int | Offset to UTC in seconds |
isdst | bool | Whether daylight saving time is active |
abbr | string | Timezone abbreviation |
Example #1 A timezone_transitions_get() example
<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>
The above example will output something similar to:
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 ) )
Example #2 A timezone_transitions_get() example with timestampBegin
set
<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions(time());
print_r(array_slice($transitions, 0, 3));
?>
The above example will output something similar to:
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 ) )