date_default_timezone_set în PHP

Dată și oră PHP 5.1+

Setează fusul orar folosit de toate funcțiile de dată din script, de exemplu Europe/Bucharest.

Sintaxă
date_default_timezone_set(string $timezoneId): bool

Ce face date_default_timezone_set

Toate funcțiile de dată (date, mktime, strtotime, DateTime) lucrează într-un fus orar. Dacă nu îl setezi, PHP folosește valoarea date.timezone din php.ini, iar dacă nici aceea nu există, folosește UTC.

Pentru România, numele corect este Europe/Bucharest. Acest nume știe singur de trecerea la ora de vară. Valoarea curentă o afli cu date_default_timezone_get().

Parametri

Parametru Descriere
$timezoneId Numele fusului orar din baza de date IANA, de exemplu "Europe/Bucharest", "UTC", "America/New_York".

Ce returnează

true dacă numele este valid. Pentru un nume necunoscut returnează false și afișează un Notice.

Exemple

Exemplul 1: Același moment în mai multe fusuri orare

<?php
$t = 1792409700;

foreach (["UTC", "Europe/Bucharest", "America/New_York", "Asia/Tokyo"] as $fus) {
    date_default_timezone_set($fus);
    echo str_pad($fus, 18) . date("d.m.Y H:i", $t) . "\n";
}

echo "Fusul curent: " . date_default_timezone_get();

Rezultat

UTC               19.10.2026 11:35
Europe/Bucharest  19.10.2026 14:35
America/New_York  19.10.2026 07:35
Asia/Tokyo        19.10.2026 20:35
Fusul curent: Asia/Tokyo

Exemplul 2: Verificarea unui nume de fus orar

timezone_identifiers_list() returnează toate numele valide. Așa poți valida un fus orar ales de utilizator fără să primești un Notice.

<?php
$valide = timezone_identifiers_list();

foreach (["Europe/Bucharest", "Europe/Bucuresti"] as $fus) {
    echo $fus . ": " . (in_array($fus, $valide, true) ? "valid" : "invalid") . "\n";
}

Rezultat

Europe/Bucharest: valid
Europe/Bucuresti: invalid

Greșeli frecvente

  • Scrii "Europe/Bucuresti" sau "Romania". Numele corect este "Europe/Bucharest".
  • Folosești un decalaj fix, de exemplu "Etc/GMT-2". Acesta nu trece la ora de vară, deci vara ora iese greșită cu o oră.
  • Setezi fusul orar doar în unele fișiere. Pune apelul o singură dată, la începutul aplicației (sau setează date.timezone în php.ini).

Comenzi înrudite

  • date: Afișează data și ora într-un anumit format.
  • gmdate: Formatează o dată la fel ca date(), dar mereu în ora UTC (GMT), indiferent de fusul orar setat.
  • mktime: Construiește timestamp-ul Unix pentru o dată și o oră anume, din ore, minute, secunde, lună, zi și an.
  • date_create / DateTime: Creează un obiect DateTime dintr-un text. Obiectele DateTime și DateTimeImmutable sunt modul modern de a lucra cu date în PHP.