localtime()
localtime() est une fonction PHP intégrée qui convertit un horodatage Unix en tableau de valeurs de date et d'heure locales.
Avertissement :
localtime()a été dépréciée dans PHP 7.0 et supprimée dans PHP 8.0. Elle n'est plus disponible dans les versions modernes de PHP. Pour du nouveau code, utilisez la classeDateTime, oudate()combinée àdate_default_timezone_set(). Les exemples ci-dessous sont conservés pour les lecteurs qui maintiennent du code PHP 5.x/7.x hérité.
localtime() était une fonction PHP intégrée qui décomposait un horodatage Unix en composants individuels de la date et de l'heure locale — seconde, minute, heure, jour, mois, année, etc. Elle reproduisait l'appel localtime() de la bibliothèque C et renvoyait un tableau à 9 éléments plutôt qu'une chaîne formatée, ce qui la rendait utile lorsqu'on avait besoin de lire ou de calculer des champs individuels (par exemple, « est-on actuellement le week-end ? ») plutôt que d'afficher une date.
Puisqu'elle renvoyait l'heure locale, le résultat dépendait du fuseau horaire configuré sur le serveur. Pour rendre la sortie prévisible d'une machine à l'autre, définissez explicitement le fuseau horaire avec date_default_timezone_set() avant de l'appeler.
Syntaxe
<?php
localtime(int $timestamp = time(), bool $associative = false): arrayLe paramètre timestamp est l'horodatage Unix à convertir (il prend par défaut l'heure actuelle via time()). associative est un boolean optionnel qui détermine si le tableau renvoyé est indexé par nom ou par position.
Tableau indexé (par défaut)
Si associative vaut false ou est omis, le tableau est indexé numériquement et contient ces valeurs, dans l'ordre :
0: Secondes (0-59).1: Minutes (0-59).2: Heures (0-23).3: Jour du mois (1-31).4: Mois (0-11, où 0 correspond à janvier).5: Années depuis 1900.6: Jour de la semaine (0-6, où 0 correspond à dimanche).7: Jour de l'année (0-365).8: Si l'heure d'été est en vigueur (1si oui,0si non,-1si inconnu).
Attention : Deux de ces champs sont faciles à mal interpréter. L'index de mois 4 est basé sur zéro (
0= janvier,11= décembre), donc ajoutez1pour obtenir un mois lisible. L'année (index 5) compte les années depuis 1900, donc ajoutez1900pour obtenir l'année civile.
Tableau associatif
Si associative est défini à true, les clés du tableau portent les noms des champs de la structure C struct tm au lieu d'entiers, ce qui rend le résultat auto-documenté :
array(
'tm_sec' => ..., // seconds (0-59)
'tm_min' => ..., // minutes (0-59)
'tm_hour' => ..., // hours (0-23)
'tm_mday' => ..., // day of the month (1-31)
'tm_mon' => ..., // month (0-11)
'tm_year' => ..., // years since 1900
'tm_wday' => ..., // day of the week (0-6, Sunday = 0)
'tm_yday' => ..., // day of the year (0-365)
'tm_isdst' => ..., // daylight saving flag (1, 0, or -1)
)Exemples
<?php
// Get the current local time
$now = time();
$localtime = localtime($now);
print_r($localtime);
// Get the local time for a specific Unix timestamp
$timestamp = 1646563200; // March 5, 2022, 12:00:00 AM UTC
$localtime = localtime($timestamp);
print_r($localtime);
// Get the local time as an associative array
$now = time();
$localtime = localtime($now, true);
echo "The current year is " . ($localtime['tm_year'] + 1900);Ces exemples montrent comment utiliser localtime() pour convertir des horodatages Unix en valeurs de date et d'heure locales et lire des champs individuels selon les besoins.
Le remplacement moderne
Puisque localtime() a été supprimée dans PHP 8, la méthode recommandée pour décomposer un horodatage en ses composants est getdate() (qui renvoie déjà un tableau associatif pratique avec mon, year, wday, etc.) ou l'approche orientée objet DateTime :
<?php
date_default_timezone_set('UTC');
$parts = getdate(1646438400); // 2022-03-05 00:00:00 UTC
echo $parts['mday'] . '-' . $parts['mon'] . '-' . $parts['year']; // 5-3-2022
$dt = new DateTime('@1646438400');
echo $dt->format('Y-m-d H:i:s'); // 2022-03-05 00:00:00Contrairement à localtime(), getdate() vous donne year et mon directement (sans calcul +1900 ou +1), et DateTime vous permet de formater ou d'effectuer des calculs de dates sans jongler avec les index de tableau.
Voir aussi
getdate()— le remplaçant pris en charge qui renvoie un tableau de date étiqueté.mktime()— construit un horodatage à partir de composants d'heure locale individuels (l'opération inverse).strtotime()— analyse une chaîne de date lisible par l'humain en horodatage.- PHP Date and Time — aperçu des outils de date/heure de PHP.