W3docs

idate()

idate() est une fonction PHP intégrée qui extrait une information de date ou d'heure d'un horodatage Unix et la retourne sous forme d'entier.

idate() est une fonction PHP intégrée qui extrait une seule information de date ou d'heure d'un horodatage Unix et la retourne sous forme d'entier. Le nom signifie integer date (date entière). Contrairement à date(), qui construit une chaîne formatée à partir d'un ou plusieurs caractères de format, idate() accepte exactement un caractère de format et vous retourne un nombre brut sur lequel vous pouvez effectuer des calculs immédiatement.

Cette page couvre la syntaxe, les caractères de format reconnus par idate(), des exemples exécutables, ses différences avec date(), et les pièges à éviter.

Syntaxe

idate(string $format, ?int $timestamp = null): int|false
  • $format — un seul caractère de format (voir le tableau ci-dessous). Passer une chaîne de plus d'un caractère déclenche un avertissement et retourne false.
  • $timestamp — un horodatage Unix optionnel (secondes depuis le 1er janvier 1970, UTC). S'il est omis, la date et l'heure actuelles sont utilisées.

La fonction retourne un entier, ou false en cas d'échec.

Caractères de format

idate() prend en charge un sous-ensemble des caractères de format de date() — uniquement ceux qui produisent une valeur numérique.

CodeRetourneExemple
YAnnée sur quatre chiffres2023
yAnnée sur deux chiffres23
mNuméro du mois (1–12)3
nNuméro du mois (identique à m)3
dJour du mois (1–31)5
jJour du mois (identique à d)5
HHeure, format 24h (0–23)17
GHeure, format 24h (identique à H)17
iMinutes (0–59)30
sSecondes (0–59)45
NJour de la semaine ISO (1 = lundi … 7 = dimanche)7
wJour de la semaine (0 = dimanche … 6 = samedi)0
zJour de l'année, base zéro (0–365)63
tNombre de jours dans le mois donné31
LAnnée bissextile ? 1 si oui, 0 si non0
UL'horodatage Unix lui-même1678037445

Important : idate() retourne un nombre, pas une chaîne avec des zéros initiaux. idate('m') pour mars retourne l'entier 3, pas "03". Si vous avez besoin d'un zéro initial, utilisez date('m') à la place, qui retourne la chaîne "03".

Exemple de base

<?php
// March 5, 2023, 17:30:45
$timestamp = mktime(17, 30, 45, 3, 5, 2023);

echo idate('Y', $timestamp) . "\n"; // 2023
echo idate('m', $timestamp) . "\n"; // 3
echo idate('d', $timestamp) . "\n"; // 5
echo idate('H', $timestamp) . "\n"; // 17
echo idate('i', $timestamp) . "\n"; // 30
echo idate('s', $timestamp) . "\n"; // 45

Comme la valeur de retour est un entier, vous pouvez l'utiliser directement dans des opérations arithmétiques et des comparaisons :

<?php
$timestamp = mktime(17, 30, 45, 3, 5, 2023);

if (idate('N', $timestamp) >= 6) {
    echo "It's the weekend.\n";
} else {
    echo "It's a weekday.\n";
}

// March 5, 2023 was a Sunday (N = 7), so this prints:
// It's the weekend.

Utiliser l'heure actuelle

Lorsque vous omettez le second argument, idate() lit la date et l'heure actuelles, ce qui le rend pratique pour des vérifications rapides :

<?php
$currentYear = idate('Y');

echo "The current year is {$currentYear}.\n";

// Detect a leap year
echo idate('L') ? "This year is a leap year.\n" : "This year is not a leap year.\n";

idate() vs. date()

idate()date()
Longueur du formatUn seul caractèreN'importe quel nombre de caractères
Type de retourint (ou false)string
Zéros initiauxJamais (3)Oui, selon les cas ("03")
Cas d'utilisationBesoin d'un nombre pour des calculs/comparaisonsBesoin d'une chaîne formatée et lisible par l'humain
<?php
$timestamp = mktime(9, 5, 0, 4, 2, 2024);

echo date('m', $timestamp) . "\n";  // "04"  (string, zero-padded)
echo idate('m', $timestamp) . "\n"; // 4     (integer, no padding)

Quand l'utiliser

Utilisez idate() lorsque vous avez besoin d'un composant de date/heure sous forme de nombre — par exemple pour construire un compteur, comparer deux valeurs, indexer dans un tableau ou alimenter le résultat dans des calculs ultérieurs. Si votre objectif est d'afficher une date ou une heure formatée, utilisez date() (ou strtotime() pour analyser du texte en horodatage au préalable).

Pièges à éviter

  • Pas de formats multi-caractères. idate('Y-m-d') ne fonctionne pas — cela génère un avertissement et retourne false. Appelez idate() une fois par composant, ou utilisez date().
  • Pas de zéros initiaux. Ne comptez pas sur idate() pour une sortie de largeur fixe ; il supprime toujours le remplissage.
  • false ressemble à 0. En cas d'échec, idate() retourne false, qui est loosement égal à 0. Utilisez une vérification stricte (=== false) si un vrai 0 (comme un dimanche avec w) est un résultat valide.

Fonctions associées

  • date() — formater un horodatage sous forme de chaîne.
  • mktime() — construire un horodatage Unix à partir de composants de date/heure.
  • strtotime() — analyser une chaîne de date en anglais en horodatage.
  • time() — obtenir l'horodatage Unix actuel.

Practice

Practice

Pratique
Que fait la fonction idate() en PHP ?
Que fait la fonction idate() en PHP ?
Was this page helpful?