Qu’est-ce qu’une date en PHP ?
En PHP, une date représente une information temporelle : un jour, une heure ou un moment précis dans le temps. Manipuler correctement les dates est essentiel dans des fonctionnalités aussi variées que la publication de contenu, la gestion d’abonnements, la planification de tâches, ou le calcul d’âges et de délais.PHP offre plusieurs manières de représenter une date :- Chaîne de caractères : Il s’agit d’un format lisible tel que
"2025-05-04 14:00:00"
. C’est souvent ce qui est échangé avec les bases de données ou les interfaces utilisateur. Facile à manipuler, mais peu fiable pour faire des calculs ou des comparaisons directement. - Timestamp Unix : Il représente le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit UTC. Par exemple,
1714838400
correspond à une date précise. Ce format est idéal pour les calculs (durée, différence, tri), mais peu lisible humainement. - Objet DateTime : C’est la méthode moderne et recommandée. La classe
DateTime
permet de manipuler les dates de manière orientée objet : calculs d’intervalles, gestion des fuseaux horaires, comparaison de dates, formatage avancé, etc.
DateTime
pour tous les traitements logiques, puis de convertir les dates en chaînes uniquement pour l’affichage ou le stockage si nécessaire.💡 Conseil : dès que vous manipulez des dates en PHP (calculs, comparaisons, fuseaux horaires), utilisez toujours
DateTime
et DateInterval
. Cela vous évitera de nombreux bugs et vous offrira une bien meilleure maîtrise dans vos applications.Comment utiliser une date en PHP
Pour utiliser une date en PHP, on commence par la créer à l’aide d’une fonction commedate()
ou d’un objet DateTime
. Une fois la date instanciée, on peut l’afficher dans un format lisible, la manipuler (ajouter des jours, calculer une différence), ou la comparer à une autre.
PHP permet également de convertir une date en timestamp pour effectuer des calculs plus précis. L’approche moderne repose sur l’usage de la classe DateTime, qui offre des méthodes robustes, comme diff() ou format().Enfin, une bonne utilisation des dates implique aussi de tenir compte du fuseau horaire, surtout pour les applications internationales. Ainsi, utiliser une date en PHP, c’est savoir la représenter, la transformer et l’exploiter de façon fiable dans la logique métier d’un projet.Le Formatage des dates
Avant de commencer, il faut que je vous explique comment bien formater vos dates. En effet, les fonctions date() et format() utilisent des caractères pour composer la date ou l’heure entourée de simple guillemet (single quote) :Caractère | Signification | Exemple |
---|---|---|
Y | Année (4 chiffres) | 2025 |
m | Mois (2 chiffres) | 05 |
d | Jour (2 chiffres) | 04 |
H | Heure (24h) | 13 |
i | Minutes | 45 |
s | Secondes | 09 |
<?php
echo date('d/m/Y à H:i');
// Resultats: 04/05/2025 à 13:45
?>
Créer une date en PHP
À présent, je vais te montrer des exemples de code à utiliser pour manipuler les dates :1. Avec date() et time()
<?php
echo date('Y-m-d'); // Affiche la date du jour
echo time(); // Timestamp actuel
?>
ici, on utilise code() pour récupérer la date sous cette forme : année/mois/jour (il s’agit du système anglo-saxon).2. Avec DateTime
<?php
$date = new DateTime(); // Maintenant
echo $date->format('Y-m-d H:i:s');
?>
Ici, on instancie la classe Datetime en ne passant rien en paramètre, il récupère la date et l’heure à l’instant T. Puis, va le reformater avec format en indiquant comment le récupérer.3. Date personnalisée
<?php
$date = new DateTime('2024-12-31 23:59:59');
echo $date->format('d/m/Y H:i');
?>
Ici en entre une date précise qui est le format anglo-saxon pour le convertir en format européen.Modifier une date en PHP
Ajouter ou soustraire un intervalle de temps
<?php
$date = new DateTime('2025-01-01');
$date->modify('+1 month');
echo $date->format('Y-m-d');
?
Ce code te permet de rajouter 1 mois ou 30 jours à la date passée en paramètre lors de l’instanciation de la classe.Avec DateInterval
<?php
$date = new DateTime();
$interval = new DateInterval('P7D'); // P = période, 7D = 7 jours
$date->add($interval);
echo $date->format('Y-m-d');
?>
Ce code te retourne la date qu’il fera dans sept jours à l’instant T lors de l’instanciation de la classe. Comparer deux dates en PHP
<?php
$date1 = new DateTime('2025-01-01');
$date2 = new DateTime('2025-01-10');
if ($date1 < $date2) {
echo "date1 est avant date2";
}
?>
Ce code te permet de savoir si une date est dépassé. Pratique pour des coupons ou des promos sur un site e-commerce.Calculer une différence entre deux dates
<?php
$diff = $date1->diff($date2);
echo $diff->days . ' jours de différence';
?>
Ici ce code permet de calculer par exemple ou un utilisateur ne s’est pas connecté sur son espace par exemple. Gestion des fuseaux horaires
<?php
$dateParis = new DateTime('now', new DateTimeZone('Europe/Paris'));
$dateTokyo = new DateTime('now', new DateTimeZone('Asia/Tokyo'));
echo $dateParis->format('H:i');
echo $dateTokyo->format('H:i');
?>
Exercice pratique : Calcul de la date d’expiration d’un abonnement
Énoncé : un utilisateur s’abonne aujourd’hui pour 30 jours. Affichez la date d’expiration.Allez sur le repo et entrainez vous trouver la bonne réponses.Bonnes pratiques à retenir
- 📌 Utilisez
DateTime
pour les traitements complexes. - 🕐 Gérez les fuseaux horaires si votre application est internationale.
- 🧪 Validez les formats de date en entrée/sortie.
- 🧹 Ne traitez pas les dates comme de simples chaînes de texte.