getdate()
Apprenez la fonction PHP getdate() : syntaxe, paramètres, le tableau associatif retourné et des exemples exécutables pour travailler avec les dates.
Introduction
La fonction PHP getdate() décompose une date en ses parties individuelles — année, mois, jour, heure, nom du jour de la semaine, et bien plus — et les retourne sous forme de tableau associatif. Par défaut, elle décrit l'heure locale actuelle, mais vous pouvez passer n'importe quel horodatage Unix pour décrire un autre moment.
Un horodatage Unix est un entier comptant le nombre de secondes écoulées depuis le 1er janvier 1970, 00:00:00 UTC (l'« époque Unix »). Les fonctions comme time(), mktime() et strtotime() produisent toutes ce type d'horodatages, et getdate() en transforme un en une décomposition lisible par l'humain.
Cette page couvre la syntaxe, chaque clé du tableau retourné, des exemples exécutables, et comment getdate() se compare à la classe moderne DateTime.
Syntaxe et paramètres
La syntaxe de getdate() est la suivante :
getdate(int $timestamp = time()): arrayL'unique paramètre optionnel $timestamp est l'horodatage Unix à décrire. Si vous l'omettez, getdate() utilise par défaut time() — le moment présent. Le résultat reflète le fuseau horaire configuré (voir date_default_timezone_set(), ou le paramètre date.timezone dans php.ini), donc définissez votre fuseau horaire si vous avez besoin de résultats cohérents entre les serveurs.
Valeur de retour
getdate() retourne un tableau associatif décrivant l'horodatage donné. Voici une présentation de chaque clé :
| Clé | Valeur |
|---|---|
| "seconds" | Secondes (0-59) |
| "minutes" | Minutes (0-59) |
| "hours" | Heures (0-23) |
| "mday" | Jour du mois (1-31) |
| "wday" | Jour de la semaine (0-6, 0=dimanche) |
| "mon" | Mois (1-12) |
| "year" | Année (ex. : 2023) |
| "yday" | Jour de l'année (0-365) |
| "weekday" | Nom complet du jour (ex. : "Monday") |
| "month" | Nom complet du mois (ex. : "January") |
| "0" | Horodatage Unix (secondes depuis le 1er jan. 1970) |
| "zone" | Décalage du fuseau horaire en secondes par rapport à GMT |
Remarque : la clé "0" (l'horodatage brut) est un entier ; les autres sont des entiers à l'exception de "weekday" et "month", qui sont des string. La clé "is_dst" a été dépréciée en PHP 7.0 et supprimée en PHP 8.0.
Utilisation et exemples
Formater la date actuelle
Appelez getdate(), stockez le résultat et lisez les clés dont vous avez besoin :
Cela affiche quelque chose comme : Today is Thursday, March 3, 2023.
Décrire un horodatage spécifique
Passez un horodatage Unix pour décrire un moment autre que maintenant. Ici, nous utilisons un horodatage fixe afin que la sortie soit reproductible :
<?php
// 2021-12-25 00:00:00 UTC
$date = getdate(1640390400);
echo $date['weekday'] . ", " . $date['mday'] . " " . $date['month'] . " " . $date['year'] . PHP_EOL;
echo "Day " . $date['yday'] . " of the year, hour " . $date['hours'] . PHP_EOL;En supposant un fuseau horaire UTC, cela affiche :
Saturday, 25 December 2021
Day 358 of the year, hour 0Construire un horodatage d'abord, puis le décomposer
getdate() se combine naturellement avec mktime(), qui construit un horodatage à partir de parties individuelles :
<?php
// mktime(hour, minute, second, month, day, year)
$timestamp = mktime(9, 30, 0, 7, 4, 2024);
$parts = getdate($timestamp);
echo "{$parts['weekday']} at {$parts['hours']}:{$parts['minutes']}";Cela affiche Thursday at 9:30.
getdate() vs. la classe DateTime
getdate() est pratique pour des lectures rapides et ponctuelles, mais pour tout ce qui implique de l'arithmétique, des comparaisons ou des fuseaux horaires, la classe orientée objet DateTime est le choix moderne :
DateTimegère les calculs de dates (->add(),->sub(),->diff()) en toute sécurité à travers les limites de mois et d'années.- Elle porte un fuseau horaire explicite, évitant les surprises liées au fuseau horaire global par défaut.
- Elle formate la sortie avec
date-formatau lieu de la concaténation manuelle de string.
Utilisez getdate() lorsque vous avez juste besoin de quelques champs d'un horodatage ; utilisez DateTime lorsque vous devez manipuler ou comparer des dates.
Conclusion
getdate() transforme un horodatage Unix en un tableau associatif étiqueté, ce qui en fait un moyen rapide d'extraire l'année, le mois, le jour de la semaine ou tout autre composant d'une date. Pour l'affichage et les consultations simples, c'est idéal ; pour l'arithmétique des dates et la logique tenant compte des fuseaux horaires, préférez la classe DateTime.