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înphp.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.