Maîtriser PHP Date() : Formater la date et l'heure comme un pro

17 novembre 2025

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écificationDescriptionExemple de sortie
YAnnée à 4 chiffres2026
yAnnée à 2 chiffres25
mMois (01-12)11
nMois sans les zéros initiaux (1-12)11
FNom du mois completNovembre
MNom de mois court (3 lettres)Nov
dJour du mois avec des zéros en tête17
jJour sans zéros initiaux17
lNom complet du jour de la semaineLundi
DJour de semaine court (3 lettres)Mon
HFormat 24 heures (00-23)11
hFormat 12 heures (01-12)11
iMinutes avec zéros en tête37
sSecondes avec zéros en tête45
UNMajuscule AM/PMAM
aMinuscules am/pmam
TAbréviation du fuseau horaireTSI
cFormat ISO 86012026-11-17T11:37:45+05:30
rFormat 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:45
2. Format lisible par l'homme

php

echo date(‘l, F j, Y \a\t g:i A’) ; 

// Sortie : Lundi 17 novembre 2026 à 11h37

Utilisation \ 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/2026
4. Temps seulement

php

echo date('h:i A') ; 

// Sortie : 11:37 AM

Travailler 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-01
Combiner avec strtotime()

php

echo date('F j, Y', strtotime('+7 jours')) ;

// Sortie : 24 novembre 2026

Gestion 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 IST

Meilleures 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 2026
2. 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 ago
3. 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

EnjeuSolution
Fuseau horaire incorrectToujours utiliser date_default_timezone_set()
Des bogues semblables à ceux du passage à l'an 2000 avec yPréférer Y pour l'ensemble de l'année
Confusion des zéros non significatifsUtilisation j au lieu de d si vous ne voulez pas de zéros
Problèmes liés à la langueUtilisation 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
// ISO
date('c') ;

// Format US
date('m/d/Y h:i A') ;

// Format UE
date('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.