DateTimeZone::getTransitions

timezone_transitions_get

Returns all transitions for the timezone

&reftitle.description;

&style.oop;

public ``array``false```DateTimeZone::getTransitions` `int` `timestampBegin` `PHP_INT_MIN` `int` `timestampEnd` `PHP_INT_MAX`

&style.procedural;

``array``false```timezone_transitions_get` `DateTimeZone` `object` `int` `timestampBegin` `PHP_INT_MIN` `int` `timestampEnd` `PHP_INT_MAX`
&reftitle.parameters;

&date.datetimezone.description;

`timestampBegin`

- Begin timestamp.

`timestampEnd`

- End timestamp.

&reftitle.returnvalues;

Returns a numerically indexed array of transition arrays on success, &return.falseforfailure;. 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`.

## Transition Array Structure

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

&reftitle.examples;

### A `timezone_transitions_get` example

    <?php
    $timezone = new DateTimeZone("Europe/London");
    $transitions = $timezone->getTransitions();
    print_r(array_slice($transitions, 0, 3));
    ?>

&example.outputs.similar;

    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
            )

    )

### 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));
    ?>

&example.outputs.similar;

    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
            )

    )