Chapitre 17 : Dates et heures

Maîtrisez la manipulation des dates et heures en PHP avec ce chapitre complet. Découvrez les fonctions essentielles pour gérer le temps dans vos applications web.

1. Introduction

Gérer les dates et les heures est essentiel dans toute application web : afficher la date actuelle, enregistrer une heure, calculer un délai, formater des dates pour les utilisateurs ou la base de données… PHP propose plusieurs fonctions très puissantes pour cela.

2. Afficher la date et l'heure actuelles

Utilisez la fonction date() avec un format spécifique :

<?php
  echo date("d/m/Y"); // Exemple : 31/07/2025
  echo date("H:i:s"); // Heure actuelle
?>

Formats courants :

  • d : jour (2 chiffres)
  • m : mois
  • Y : année (4 chiffres)
  • H : heure (24h)
  • i : minutes
  • s : secondes

3. Définir le fuseau horaire

Par défaut, PHP utilise UTC. Vous pouvez définir un autre fuseau :

<?php
  date_default_timezone_set("Europe/Paris");
?>
Conseil : Placez cette configuration au début de votre script ou dans un fichier de configuration global.

4. Timestamp Unix

Le timestamp est le nombre de secondes écoulées depuis le 1er janvier 1970 :

<?php
  echo time(); // Exemple : 1722207684
?>

Utile pour comparer ou stocker des dates de manière compacte.

5. Convertir un texte en date

strtotime() transforme une chaîne de texte en timestamp :

<?php
  $timestamp = strtotime("2025-12-25");
  echo date("d/m/Y", $timestamp); // Affiche : 25/12/2025
?>

6. Classe DateTime (POO)

PHP propose une classe orientée objet très pratique pour manipuler les dates :

<?php
  $date = new DateTime("2025-08-01");
  echo $date->format("d/m/Y");
?>

Ajouter ou retirer du temps :

<?php
  $date->modify("+7 days");
  $date->modify("-2 months");
?>

7. Calculer la différence entre deux dates

Utilisez la méthode diff() de la classe DateTime :

<?php
  $d1 = new DateTime("2025-08-01");
  $d2 = new DateTime("2025-12-31");
  $interval = $d1->diff($d2);
  echo $interval->format("%m mois et %d jours");
// Affiche : "4 mois et 30 jours"
?>

8. À retenir

  • date() permet d'afficher l'heure et la date actuelle
  • time() donne un timestamp (nombre de secondes)
  • strtotime() convertit un texte en date
  • DateTime permet une manipulation avancée
  • diff() permet de comparer deux dates

9. Exercices proposés

  1. Afficher la date du jour dans le format français.
  2. Afficher combien de jours il reste avant le 31 décembre.
  3. Afficher l'âge d'une personne née en 2000.
  4. Créer une fonction qui ajoute X jours à une date donnée.

10. Ce que vous apprendrez ensuite

Dans le chapitre 18, vous verrez comment filtrer et valider les données utilisateur en toute sécurité avec les fonctions filter_var(), expressions régulières, et autres bonnes pratiques.