DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::getTransitions -- timezone_transitions_getRetorna todas as transições para o fuso horário

Descrição

Estilo orientado a objetos

public DateTimeZone::getTransitions(int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false

Estilo procedural

timezone_transitions_get(DateTimeZone $object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false

Parâmetros

object

Somente no estilo procedural: Um objeto DateTimeZone retornado por timezone_open()

timestampBegin

Timestamp inicial.

timestampEnd

Timestamp final.

Valor Retornado

Retorna um array numericamente indexado de arrays de transições em caso de sucesso, ou false em caso de falha. Objetos DataTimeZone do tipo 1 (deslocamento UTC) e tipo 2 (abreviações) não contêm transições, e se tiverem este método chamado irão retornar false.

Se o parâmetro timestampBegin for informado, a primeira entrada no array de retorno irá contrer um elemento de transição no horário de timestampBegin.

Estrutura do Array de Transição
Key Type Description
ts int Timestamp Unix
time string string de horário DateTimeInterface::ISO8601_EXPANDED (PHP 8.2 e seguintes), ou DateTimeInterface::ISO8601 (PHP 8.1 e anteriores)
offset int Deslocamento UTC em segundos
isdst bool Se o horário de verão está ativo
abbr string Abreviação do fuso horário

Exemplos

Example #1 Exemplo do método timezone_transitions_get()

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

O exemplo acima produzirá algo semelhante a:

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 Um exemplo da função timezone_transitions_get() com o parâmetro timestampBegin

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

O exemplo acima produzirá algo semelhante a:

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
        )

)