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 retournefalse.$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.
| Code | Retourne | Exemple |
|---|---|---|
Y | Année sur quatre chiffres | 2023 |
y | Année sur deux chiffres | 23 |
m | Numéro du mois (1–12) | 3 |
n | Numéro du mois (identique à m) | 3 |
d | Jour du mois (1–31) | 5 |
j | Jour du mois (identique à d) | 5 |
H | Heure, format 24h (0–23) | 17 |
G | Heure, format 24h (identique à H) | 17 |
i | Minutes (0–59) | 30 |
s | Secondes (0–59) | 45 |
N | Jour de la semaine ISO (1 = lundi … 7 = dimanche) | 7 |
w | Jour de la semaine (0 = dimanche … 6 = samedi) | 0 |
z | Jour de l'année, base zéro (0–365) | 63 |
t | Nombre de jours dans le mois donné | 31 |
L | Année bissextile ? 1 si oui, 0 si non | 0 |
U | L'horodatage Unix lui-même | 1678037445 |
Important :
idate()retourne un nombre, pas une chaîne avec des zéros initiaux.idate('m')pour mars retourne l'entier3, pas"03". Si vous avez besoin d'un zéro initial, utilisezdate('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"; // 45Comme 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 format | Un seul caractère | N'importe quel nombre de caractères |
| Type de retour | int (ou false) | string |
| Zéros initiaux | Jamais (3) | Oui, selon les cas ("03") |
| Cas d'utilisation | Besoin d'un nombre pour des calculs/comparaisons | Besoin 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 retournefalse. Appelezidate()une fois par composant, ou utilisezdate(). - Pas de zéros initiaux. Ne comptez pas sur
idate()pour une sortie de largeur fixe ; il supprime toujours le remplissage. falseressemble à0. En cas d'échec,idate()retournefalse, qui est loosement égal à0. Utilisez une vérification stricte (=== false) si un vrai0(comme un dimanche avecw) 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.