date_default_timezone_set
date_default_timezone_set($timezone)
Fixe le fuseau horaire par défaut que les fonctions date(), mktime(), strtotime() et la classe DateTime utilisent pour convertir les timestamps en dates et inversement. Il s’applique jusqu’à la fin du script.
Paramètres
- $timezone – le nom du fuseau horaire, par exemple Europe/Paris ou UTC.
Exemples
var_dump(date_default_timezone_set("Europe/Paris")); // bool(true)
// abréviation du fuseau selon la saison
echo date("T", mktime(12, 0, 0, 1, 15, 2026)); // CET
echo date("T", mktime(12, 0, 0, 7, 15, 2026)); // CEST
// le même instant dans des fuseaux différents
date_default_timezone_set("UTC");
echo date("H:i", 0); // 00:00
date_default_timezone_set("Europe/Paris");
echo date("H:i", 0); // 01:00
// un nom invalide : false et une notice (masquée ici par @)
var_dump(@date_default_timezone_set("Fuseau/Absent")); // bool(false)
echo date_default_timezone_get(); // Europe/Paris
Points d’attention
- Réglez le fuseau une seule fois au début de l’application (ou dans php.ini avec l’option date.timezone). Quand il n’est réglé nulle part, PHP calcule en UTC.
- Utilisez des noms comme Europe/Paris, pas un décalage fixe (+01:00). Le nom du fuseau inclut aussi les passages à l’heure d’été.
- Le plus sûr est de stocker en base de données des timestamps ou l’heure en UTC, et de convertir en heure locale seulement à l’affichage.
- Un nom invalide affiche une notice et renvoie false, le fuseau ne change pas.
Fonctions associées :
date_default_timezone_get()
date()
mktime()
timezone_open()