Travailler avec les dates et l'heure en PHP : de A à Z — guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec les dates et l'heure en PHP : de A à Z

\n\n

Travailler avec les dates et l'heure est l'une des tâches les plus courantes en développement web. Qu'il s'agisse d'afficher la date de publication, de calculer l'âge d'un utilisateur, de journaliser des événements ou de créer un calendrier, PHP offre une boîte à outils puissante et flexible. Dans cet article, nous aborderons tous les aspects : des fonctions simples à l'approche orientée objet avec la classe DateTime, en passant par les fuseaux horaires et des exemples pratiques.

\n\n

Fonctions de base : date() et time()

\n\n

L'ensemble de fonctions de base pour travailler avec les dates comprend time() et date(). La fonction time() renvoie le timestamp Unix actuel (nombre de secondes écoulées depuis le 1er janvier 1970). La fonction date() formate ce timestamp dans un format lisible par l'homme.

\n\n

Obtenir la date et l'heure actuelles

\n

La façon la plus simple d'afficher la date actuelle :

\n
<?php\necho date('Y-m-d H:i:s'); // 2025-04-10 15:30:45\n?>
\n\n

Formatage avec date()

\n

La fonction date() accepte deux paramètres : le format et un timestamp optionnel. Les caractères de formatage les plus courants :

\n
    \n
  • d — jour du mois (01–31)
  • \n
  • m — mois (01–12)
  • \n
  • Y — année sur 4 chiffres
  • \n
  • H — heures au format 24 heures (00–23)
  • \n
  • i — minutes (00–59)
  • \n
  • s — secondes (00–59)
  • \n
\n

Exemple d'affichage avec du texte en français :

\n
<?php\necho 'Nous sommes le ' . date('d/m/Y') . ' et il est ' . date('H:i');\n// Nous sommes le 10/04/2025 et il est 15:30\n?>
\n\n

La classe DateTime : approche orientée objet

\n

Pour les opérations complexes, il est recommandé d'utiliser la classe DateTime. Elle est intuitive, prend en charge les fuseaux horaires et simplifie les manipulations de dates.

\n\n

Création d'un objet DateTime

\n

On peut créer un objet de différentes manières :

\n
<?php\n// Date et heure actuelles\n$now = new DateTime();\necho $now->format('Y-m-d H:i:s'); // 2025-04-10 15:30:45\n\n// Date spécifique\n$date = new DateTime('2025-12-31 23:59:59');\necho $date->format('d/m/Y'); // 31/12/2025\n\n// Avec un format relatif\n$nextWeek = new DateTime('+1 week');\necho $nextWeek->format('Y-m-d');\n?>
\n\n

Modification de la date : modify()

\n

La méthode modify() permet d'ajouter ou de soustraire facilement des intervalles :

\n
<?php\n$date = new DateTime('2025-04-10');\n$date->modify('+10 days');\necho $date->format('d/m/Y'); // 20/04/2025\n\n$date->modify('-1 month');\necho $date->format('d/m/Y'); // 20/03/2025\n?>
\n\n

Travailler avec les fuseaux horaires

\n

Ignorer les fuseaux horaires est une erreur fréquente. PHP propose deux façons de les gérer : globalement avec date_default_timezone_set() et localement avec l'objet DateTimeZone.

\n\n

Configuration globale

\n

Définissez le fuseau horaire au début du script :

\n
<?php\ndate_default_timezone_set('Europe/Paris');\necho date('H:i'); // Heure de Paris\n?>
\n\n

Configuration locale pour DateTime

\n

Chaque objet DateTime peut avoir son propre fuseau horaire :

\n
<?php\n$timezone = new DateTimeZone('Asia/Vladivostok');\n$date = new DateTime('now', $timezone);\necho $date->format('H:i'); // Heure à Vladivostok\n\n// Changement de fuseau pour un objet existant\n$date->setTimezone(new DateTimeZone('Europe/Paris'));\necho $date->format('H:i'); // Heure convertie\n?>
\n\n

Différence entre dates : DateInterval

\n

La classe DateInterval et la méthode diff() permettent de calculer la différence entre deux dates.

\n\n

Calcul de la différence

\n
<?php\n$start = new DateTime('2025-01-01');\n$end = new DateTime('2025-12-31');\n$interval = $start->diff($end);\n\necho $interval->days; // 364 (nombre                

Blogs

Book Recommendations