(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::getTransitions -- timezone_transitions_get — Devuelve todas las transiciones de una zona horaria
Estilo orientado a objetos
$timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|falseEstilo procedimental
$object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false
objectSolo en estilo procedimental: un objeto DateTimeZone retornado por timezone_open()
timestampBeginInicio del timestamp.
timestampEndFin del timestamp.
Devuelve un array indexado numéricamente de arrays
de transición en caso de éxito, o false si ocurre un error.
Los objetos DateTimeZone que envuelven zonas horarias de tipo 1 (desplazamiento UTC)
y tipo 2 (abreviaturas) no contienen transiciones y llamar
a este método sobre ellos devolverá false.
Si timestampBegin es proporcionado, la primera entrada
en el array devuelto contendrá un elemento de transición al tiempo de
timestampBegin.
| Clave | Tipo | Descripción |
|---|---|---|
ts |
int | timestamp Unix |
time |
string | Cadena de tiempo DateTimeInterface::ISO8601_EXPANDED (PHP
8.2 y superior), o DateTimeInterface::ISO8601 (PHP
8.1 e inferior) |
offset |
int | Desplazamiento horario hacia UTC en segundos |
isdst |
bool | Si la hora de verano está activada |
abbr |
string | Abreviatura de la zona horaria |
Ejemplo #1 Ejemplo con timezone_transitions_get()
<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>Resultado del ejemplo anterior es similar 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
)
)
Ejemplo #2 Un ejemplo de timezone_transitions_get() con
timestampBegin definido
<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions(time());
print_r(array_slice($transitions, 0, 3));
?>Resultado del ejemplo anterior es similar 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
)
)