timezone_open în PHP

Dată și oră PHP 5.2+

Creează un obiect DateTimeZone dintr-un nume de fus orar, de exemplu Europe/Bucharest.

Sintaxă
timezone_open(string $timezone): DateTimeZone|false

Ce face timezone_open

Forma de funcție pentru new DateTimeZone("Europe/Bucharest"). Obiectul se folosește la crearea datelor (date_create("...", $tz)) și la conversii (date_timezone_set).

Acceptă nume IANA (Europe/Bucharest), UTC, abrevieri (EET) și decalaje fixe (+02:00). Pentru un nume necunoscut afișează un Warning și returnează false, iar constructorul new DateTimeZone aruncă o excepție.

Parametri

Parametru Descriere
$timezone Numele fusului orar.

Ce returnează

Un obiect DateTimeZone, sau false pentru un nume necunoscut.

Exemple

Exemplul 1: Fusuri orare create în moduri diferite

<?php
foreach (["Europe/Bucharest", "UTC", "+02:00"] as $nume) {
    $tz = timezone_open($nume);
    echo timezone_name_get($tz) . ": " . date_format(date_create("2026-10-19 12:00", $tz), "H:i P") . "\n";
}

Rezultat

Europe/Bucharest: 12:00 +03:00
UTC: 12:00 +00:00
+02:00: 12:00 +02:00

Exemplul 2: Nume greșit, cu excepție

<?php
try {
    new DateTimeZone("Europe/Bucuresti");
} catch (Exception $e) {
    echo get_class($e) . ": " . $e->getMessage();
}

Rezultat

DateInvalidTimeZoneException: DateTimeZone::__construct(): Unknown or bad timezone (Europe/Bucuresti)

Greșeli frecvente

  • Folosești "+02:00" pentru România. Decalajul fix nu știe de ora de vară. Folosește "Europe/Bucharest".

Comenzi înrudite

  • timezone_name_get: Returnează numele unui obiect DateTimeZone, de exemplu Europe/Bucharest.
  • date_timezone_set: Mută un obiect DateTime în alt fus orar. Momentul rămâne același, se schimbă doar ora afișată.
  • timezone_identifiers_list: Returnează lista numelor valide de fusuri orare, toate sau doar dintr-un continent ori dintr-o țară.