Fonction PHP Date() & Time : Comment obtenir l'horodatage actuel ?

โšก Rรฉsumรฉ intelligent

La fonction PHP `date()` permet de formater les horodatages en dates et heures lisibles. Ce guide explique la syntaxe des dates, le format d'horodatage Unix, comment afficher et dรฉfinir les fuseaux horaires, la fonction `mktime` pour crรฉer des horodatages, ainsi qu'une documentation complรจte sur les caractรจres de formatage de l'heure, du jour, du mois et de l'annรฉe.

  • ๐Ÿ“… Que fait la fonction date() ? La fonction date transforme un horodatage en une chaรฎne de caractรจres formatรฉe utilisant des caractรจres tels que Y, m et d pour annรฉe, mois et jour.
  • ๏ธ Horodatage Unix : Un horodatage correspond au nombre de secondes รฉcoulรฉes depuis le 1er janvier 1970 GMT, et la fonction time() renvoie la valeur actuelle.
  • ๐ŸŒ Fuseaux horaires: date_default_timezone_set modifie le fuseau horaire actif, et DateTimeZone::listIdentifiers liste tous les fuseaux horaires pris en charge.
  • ๐Ÿ”ง mktime : La fonction mktime construit un horodatage ร  partir d'une heure, minute, seconde, mois, jour et annรฉe spรฉcifiques.
  • ๐Ÿ”ค Caractรจres de format : Des lettres individuelles contrรดlent l'affichage, par exemple H pour l'heure au format 24 heures, l pour le nom du jour de la semaine et F pour le nom du mois.
  • (I.e. Tableaux de rรฉfรฉrence : Les tableaux groupรฉs rรฉpertorient les caractรจres de format de l'heure, du jour, du mois et de l'annรฉe avec un exemple exรฉcutable pour chacun.
  • ๐Ÿค– Assistance IA : Les outils d'IA peuvent gรฉnรฉrer des formats de date et des codes de diffรฉrence, et aider ร  rรฉsoudre les problรจmes liรฉs aux fuseaux horaires.

Fonction PHP date()

Fonction PHP date()

La fonction PHP `date` est une fonction intรฉgrรฉe qui simplifie la manipulation des donnรฉes de type date. Elle permet de formater une date ou une heure dans un format lisible. On peut l'utiliser pour afficher la date de publication d'un article ou la date de derniรจre mise ร  jour des donnรฉes d'une base de donnรฉes.

Syntaxe et exemple de date PHP

La fonction PHP date() possรจde la syntaxe de base suivante.

<?php
date(format,[timestamp]);
?>

ICI,

  • ยซ date(โ€ฆ) ยป est la fonction qui renvoie lโ€™horodatage actuel formatรฉ en PHP sur le serveur.
  • ยซ format ยป dรฉsigne le format gรฉnรฉral que nous souhaitons pour notre sortie, par exemple :
    • ยซ Ymd ยป correspond au format de date PHP AAAA-MM-JJ.
    • ยซ Y ยป pour afficher l'annรฉe en cours
  • Le paramรจtre ยซ [timestamp] ยป est facultatif. Si aucun horodatage nโ€™est fourni, PHP utilisera la date et lโ€™heure actuelles du serveur.

Prenons un exemple simple qui affiche l'annรฉe en cours.

<?php

echo date("Y");

?>

Sortie :

2026

Qu'est-ce qu'un horodatage ?

En PHP, un horodatage est une valeur numรฉrique en secondes entre l'heure actuelle et la valeur ร  l'instant 1.st Janvier 1970 00:00:00 Heure moyenne de Greenwich (GMT).

La valeur renvoyรฉe par la fonction time dรฉpend du fuseau horaire par dรฉfaut.

Le fuseau horaire par dรฉfaut est dรฉfini dans le fichier php.ini. Il peut รฉgalement รชtre dรฉfini par programmation ร  l'aide de la fonction date_default_timezone_set.

Le code ci-dessous affiche l'horodatage actuel.

<?php

echo time();

?>

En supposant que vous ayez enregistrรฉ le fichier timestamp.php dans le dossier phptuts, accรฉdez ร  URL http://localhost/phptuts/timestamp.php

Horodatage

Remarque : la valeur de lโ€™horodatage nโ€™est pas constante. Elle change chaque seconde.

Obtenir une liste des identifiants de fuseau horaire disponibles

Avant d'examiner comment dรฉfinir le fuseau horaire par dรฉfaut par programmation, voyons comment obtenir la liste des fuseaux horaires pris en charge.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

foreach($timezone_identifiers as $key => $list){

echo $list . "<br/>";

}
?>

ICI,

  • L'instruction ยซ $timezone_identifiers = DateTimeZone::listIdentifiers(); ยป appelle la mรฉthode statique listIdentifiers de la classe intรฉgrรฉe DateTimeZone. Cette mรฉthode renvoie une liste d'identifiants qui sont affectรฉs ร  la variable $timezone_identifiers.
  • La boucle ยซ foreach{โ€ฆ} ยป parcourt le tableau et affiche les valeurs.

En supposant que vous ayez enregistrรฉ le fichier list_time_zones.php dans le dossier phptuts, accรฉdez ร  URL http://localhost/phptuts/list_time_zones.php

Identificateurs de fuseau horaire

PHP dรฉfinit le fuseau horaire par programme

La fonction date_default_timezone_set permet de dรฉfinir le fuseau horaire par dรฉfaut ร  partir d'un script PHP.

Le fuseau horaire dรฉfini sera alors utilisรฉ par toutes les dates Fonctions PHP dans vos scripts. Sa syntaxe est la suivante.

<?php
date_default_timezone_set(string $timezone_identifier);
?>

ICI,

  • ยซ date_default_timezone_set() ยป est la fonction qui dรฉfinit le fuseau horaire par dรฉfaut
  • "string $timezone_identifier" est l'identifiant du fuseau horaire

Le script ci-dessous affiche l'heure selon le fuseau horaire par dรฉfaut dรฉfini dans php.ini. Il modifie ensuite le fuseau horaire par dรฉfaut pour Asia/Calcutta et affiche ร  nouveau l'heure.

<?php
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");

date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
?>

En supposant que vous ayez enregistrรฉ le fichier set_time_zone.php dans le dossier phptuts, accรฉdez ร  URL http://localhost/phptuts/set_time_zone.php

PHP dรฉfinit le fuseau horaire par programme

Fonction PHP Mktime

La fonction mktime renvoie l'horodatage dans un Unix le format.

Il a la syntaxe suivante.

<?php
mktime(hour, minute, second, month, day, year, is_dst);
?>

ICI,

  • "mktime(โ€ฆ)" est la fonction d'horodatage make PHP
  • ยซ Heure ยป est facultatif ; il s'agit du numรฉro de l'heure.
  • ยซ Minute ยป est facultatif ; il s'agit du nombre de minutes.
  • ยซ seconde ยป est facultatif ; il s'agit du nombre de secondes.
  • Le champ ยซ mois ยป est facultatif ; il s'agit du numรฉro du mois.
  • Le terme ยซ jour ยป est facultatif ; il s'agit du numรฉro du jour.
  • ยซ Annรฉe ยป est facultatif ; il sโ€™agit du numรฉro de lโ€™annรฉe.
  • Le paramรจtre ยซ is_dst ยป est facultatif ; il sert ร  dรฉterminer lโ€™heure dโ€™รฉtรฉ (DST). La valeur 1 indique que lโ€™heure dโ€™รฉtรฉ est en vigueur, 0 si elle ne lโ€™est pas, et -1 si elle est inconnue.

Examinons maintenant un exemple qui crรฉe un horodatage pour la date du 13/10/2025 ร  l'aide de la fonction mktime.

<?php

echo mktime(0,0,0,10,13,2025);

?>

ICI,

  • ยซ 0,0,0 ยป reprรฉsente respectivement lโ€™heure, les minutes et les secondes.
  • "10" est le mois de l'annรฉe
  • "13" est le jour du mois
  • "2025" est l'annรฉe

Sortie :

1760328000

Rรฉfรฉrence du format de date PHP

Les tableaux ci-dessous prรฉsentent les caractรจres de formatage courants utilisรฉs lors de l'utilisation des fonctions de date PHP.

Paramรจtres de temps

Paramรจtres Description Exemple
"R" Renvoie la date et l'heure complรจtes
<?php
echo date("r");
?>
ยซ un ยป, ยซ A ยป Indique si l'heure actuelle est respectivement am ou pm, AM ou PM
<?php
echo date("a");
echo date("A");
?>
ยซ g ยป, ยซ G ยป Renvoie l'heure sans les zรฉros non significatifs [1 ร  12], [0 ร  23] respectivement
<?php
echo date("g");
echo date("G");
?>
ยซ h ยป, ยซ H ยป Renvoie l'heure avec les zรฉros non significatifs [01 ร  12], [00 ร  23] respectivement
<?php
echo date("h");
echo date("H");
?>
"est" Renvoie les minutes/secondes avec les zรฉros non significatifs [00 ร  59]
<?php
echo date("i");
echo date("s");
?>

Paramรจtres du jour

Paramรจtres Description Exemple
"rรฉ" Renvoie le jour du mois avec les zรฉros non significatifs [01 ร  31]
<?php
echo date("d");
?>
"je" Renvoie le jour du mois sans les zรฉros non significatifs [1 ร  31]
<?php
echo date("j");
?>
"Rร‰" Renvoie les 3 premiรจres lettres du nom du jour [Dim ร  Sam]
<?php
echo date("D");
?>
ยซLยป Renvoie le nom du jour de la semaine [du dimanche au samedi]
<?php
echo date("l");
?>
"w" Renvoie le jour de la semaine sans zรฉros non significatifs [de 0 ร  6] ; dimanche est reprรฉsentรฉ par zรฉro (0) et samedi par six (6).
<?php
echo date("w");
?>
"Z" Renvoie le jour de l'annรฉe sans espaces [0 ร  365]
<?php
echo date("z");
?>

Paramรจtres du mois

Paramรจtres Description Exemple
"M" Renvoie le numรฉro du mois avec les zรฉros non significatifs [01 ร  12]
<?php
echo date("m");
?>
ยซNยป Renvoie le numรฉro du mois sans les zรฉros non significatifs [1 ร  12]
<?php
echo date("n");
?>
"M" Renvoie les 3 premiรจres lettres du nom du mois [janvier ร  dรฉcembre]
<?php
echo date("M");
?>
"F" Renvoie le nom du mois [janvier ร  dรฉcembre]
<?php
echo date("F");
?>
ยซTยป Renvoie le nombre de jours dans un mois [28 ร  31]
<?php
echo date("t");
?>

Paramรจtres de l'annรฉe

Paramรจtres Description Exemple
"L" Renvoie 1 si c'est une annรฉe bissextile et 0 si ce n'est pas une annรฉe bissextile.
<?php
echo date("L");
?>
"Y" Renvoie l'annรฉe au format ร  quatre chiffres
<?php
echo date("Y");
?>
"Y" Renvoie l'annรฉe au format ร  deux chiffres (00 ร  99).
<?php
echo date("y");
?>

FAQ

La fonction `date()` est une fonction procรฉdurale simple qui formate un horodatage. La classe `DateTime` est orientรฉe objet et prend en charge les opรฉrations arithmรฉtiques, les comparaisons, les fuseaux horaires et l'immuabilitรฉ, ce qui la rend plus adaptรฉe ร  la gestion complexe des dates dans les applications de grande envergure.

Utilisez la fonction strtotime(), qui interprรจte les formats tels que ยซ 2025-10-13 ยป ou ยซ next ยป. Mondayet renvoie un horodatage Unix. Pour une analyse stricte d'un format connu, DateTime::createFromFormat est plus sรปr car il signale clairement une erreur en cas d'entrรฉe invalide.

Crรฉez deux objets DateTime et appelez la fonction diff(), qui renvoie un DateInterval. Vous pouvez ensuite lire les jours, les mois ou les annรฉes, par exemple $start->diff($end)->days pour obtenir le nombre total de jours entre les dates.

Oui. Dรฉcrivez le format d'entrรฉe et de sortie, et l'IA pourra gรฉnรฉrer du code date(), DateTime ou strtotime, en ajoutant des intervalles ou en convertissant les fuseaux horaires. Testez-la avec des cas particuliers comme les annรฉes bissextiles et les fins de mois.

Oui. L'IA peut dรฉtecter un appel manquant ร  date_default_timezone_set, une incohรฉrence entre le fuseau horaire du serveur et celui de l'affichage, ou des problรจmes liรฉs ร  l'heure d'รฉtรฉ, puis recommander l'utilisation de DateTime avec des fuseaux horaires explicites pour rendre le comportement prรฉvisible.

Rรฉsumez cet article avec :