timezone_transitions_get în PHP

Dată și oră PHP 5.2+

Returnează momentele în care un fus orar trece la ora de vară sau de iarnă, într-un interval de timp.

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

Ce face timezone_transitions_get

Forma de funcție a metodei DateTimeZone::getTransitions(). Fiecare element are cheile ts (timestamp-ul), time (ora UTC), offset (noul decalaj în secunde), isdst (ora de vară) și abbr (abrevierea, de exemplu EEST).

Primul element descrie starea de la începutul intervalului, iar următoarele sunt schimbările din interval.

Parametri

Parametru Descriere
$object Fusul orar.
$timestampBegin Opțional. Începutul intervalului.
$timestampEnd Opțional. Sfârșitul intervalului.

Ce returnează

Un tablou cu trecerile, sau false la eroare.

Exemple

Exemplul 1: Schimbările de oră din 2026 în România

Orele afișate sunt cele locale de imediat după schimbare: în martie, ora 03:00 devine 04:00; în octombrie, ora 04:00 devine 03:00.

<?php
$tz = timezone_open("Europe/Bucharest");
$treceri = timezone_transitions_get($tz, gmmktime(0, 0, 0, 1, 1, 2026), gmmktime(0, 0, 0, 12, 31, 2026));

foreach (array_slice($treceri, 1) as $t) {
    $local = date_create("@" . $t["ts"]);
    date_timezone_set($local, $tz);
    echo date_format($local, "d.m.Y H:i") . " -> " . $t["abbr"] . " (UTC" . sprintf("%+d", $t["offset"] / 3600) . ")\n";
}

Rezultat

29.03.2026 04:00 -> EEST (UTC+3)
25.10.2026 03:00 -> EET (UTC+2)

Greșeli frecvente

  • Iei în calcul și primul element ca schimbare. El arată doar starea de la începutul intervalului.

Comenzi înrudite

  • timezone_offset_get: Returnează decalajul unui fus orar față de UTC, în secunde, la o anumită dată.
  • timezone_open: Creează un obiect DateTimeZone dintr-un nume de fus orar, de exemplu Europe/Bucharest.