PHP's date() est l'un des outils les plus puissants et les plus couramment utilisés pour gérer le formatage de la date et de l'heure dans les applications web. Qu'il s'agisse d'un blog, d'une plateforme de commerce électronique ou d'un tableau de bord, il est essentiel d'afficher les dates de manière conviviale. Dans ce guide complet,
nous allons nous plonger dans la date() explorer sa syntaxe, ses spécificateurs de format, des exemples concrets, les meilleures pratiques et les pièges les plus courants.
Qu'est-ce que la fonction PHP Date() ?
Le date() en PHP formate une date et une heure locales selon une chaîne de formatage spécifiée. Elle renvoie une chaîne représentant la date et l'heure formatées.
Syntaxe de base
php
string date(string $format, ?int $timestamp = null)
$format: Une chaîne contenant des spécificateurs de format (par ex,Y,m,d).$emps: Horodatage Unix facultatif. S'il est omis, l'heure actuelle est utilisée.
Note: A partir de PHP 8.0+, le second paramètre est nullable (?int).
Principales spécifications du format de date PHP
Voici un tableau de référence rapide des caractères de format les plus couramment utilisés :
| Spécification | Description | Exemple de sortie |
Y | Année à 4 chiffres | 2026 |
y | Année à 2 chiffres | 25 |
m | Mois (01-12) | 11 |
n | Mois sans les zéros initiaux (1-12) | 11 |
F | Nom du mois complet | Novembre |
M | Nom de mois court (3 lettres) | Nov |
d | Jour du mois avec des zéros en tête | 17 |
j | Jour sans zéros initiaux | 17 |
l | Nom complet du jour de la semaine | Lundi |
D | Jour de semaine court (3 lettres) | Mon |
H | Format 24 heures (00-23) | 11 |
h | Format 12 heures (01-12) | 11 |
i | Minutes avec zéros en tête | 37 |
s | Secondes avec zéros en tête | 45 |
UN | Majuscule AM/PM | AM |
a | Minuscules am/pm | am |
T | Abréviation du fuseau horaire | TSI |
c | Format ISO 8601 | 2026-11-17T11:37:45+05:30 |
r | Format RFC 2822 | Mon, 17 Nov 2026 11:37:45 +0530 |
Exemples de base de format de date en PHP
1. Date et heure actuelles
php
echo date(‘Y-m-d H:i:s’) ;
// Sortie : 2026-11-17 11:37:452. Format lisible par l'homme
php
echo date(‘l, F j, Y \a\t g:i A’) ;
// Sortie : Lundi 17 novembre 2026 à 11h37Utilisation \ pour échapper à des caractères tels que à de sorte qu'ils apparaissent littéralement.
3. Date courte
php
echo date('d/m/Y') ;
// Sortie : 17/11/20264. Temps seulement
php
echo date('h:i A') ;
// Sortie : 11:37 AMTravailler avec des horodatages
Vous pouvez formater n'importe quel horodatage Unix :
php
$timestamp = strtotime('2026-01-01 00:00:00') ;
echo date('Y-m-d', $timestamp) ;
// Sortie : 2026-01-01Combiner avec strtotime()
php
echo date('F j, Y', strtotime('+7 jours')) ;
// Sortie : 24 novembre 2026Gestion des fuseaux horaires (critique !)
Par défaut, date() utilise le fuseau horaire par défaut du serveur. Il faut toujours le définir explicitement :
php
date_default_timezone_set('Asia/Kolkata') ; // IST
echo date('Y-m-d H:i:s T') ;
// Sortie : 2026-11-17 11:37:45 ISTMeilleures pratiques: Définissez le fuseau horaire en haut de votre fichier de configuration ou de votre point d'entrée.
Cas concrets d'utilisation du format de date en PHP
1. dates des articles de blog
php
$post_date = '2026-11-10 14:30:00' ;
echo date('M j, Y', strtotime($post_date)) ;
// Sortie : 10 novembre 20262. Temps relatif (“il y a 2 heures”)
php
function timeAgo($timestamp) {
$diff = time() - $timestamp ;
if ($diff < 60) return "$diff il y a quelques secondes" ;
if ($diff < 3600) return round($diff/60) . "il y a quelques minutes" ;
if ($diff < 86400) return round($diff/3600) . "Il y a quelques heures" ;
return date('M j', $timestamp) ;
}
echo timeAgo(strtotime('2026-11-17 09:00:00')) ;
// Sortie : 2 hours ago3. Compte à rebours de l'événement
php
$event = strtotime('2026-12-25 00:00:00') ;
$now = time() ;
$days_left = floor(($event - $now) / 86400) ;
echo "Noël est dans $days_left jours !";
// Sortie : Noël est dans 38 jours !Les pièges les plus courants et comment les éviter
| Enjeu | Solution |
| Fuseau horaire incorrect | Toujours utiliser date_default_timezone_set() |
Des bogues semblables à ceux du passage à l'an 2000 avec y | Préférer Y pour l'ensemble de l'année |
| Confusion des zéros non significatifs | Utilisation j au lieu de d si vous ne voulez pas de zéros |
| Problèmes liés à la langue | Utilisation setlocale() + strftime() pour les noms localisés |
| Déclassé à l'avenir ? | Non, mais considérez DateTime pour les opérations complexes |
Conseils de pro
1. Utiliser DateTime pour les besoins avancés
2. php
$dt = new DateTime('now', new DateTimeZone('Asia/Kolkata')) ;
3. echo $dt->format('Y-m-d H:i:s') ;
4. Cache des dates formatées
Éviter d'appeler date() dans les boucles pour la performance.
5. Valider les horodatages d'entrée
6. php
if ($timestamp === false) {
$timestamp = time() ;
7. }
8. L'internationalisation
9. php
setlocale(LC_TIME, 'hi_IN') ;
10. echo strftime('%e %B %Y') ; // Date hindi
Bonus : Formules de rendez-vous en une phrase
php// ISOdate('c') ;
// Format USdate('m/d/Y h:i A') ;
// Format UEdate('d.m.Y H:i') ;
Conclusion
Mastering date() Il s'agit de comprendre son spécificateurs de format, gestion des fuseaux horaires, et l'intégration avec strtotime(). Tout en DateTime offre plus de puissance pour les scénarios complexes, date() reste léger, rapide et parfait pour 90% de nombreux cas d'utilisation. Carmatec, un leader Société de développement PHP, Le système de gestion de l'information de la Commission européenne, qui s'appuie sur le système de gestion de l'information de la Commission européenne, permet d'offrir une fonctionnalité propre, efficace et fiable.