W3docs

idate()

idate() è una funzione PHP integrata che estrae informazioni specifiche da un timestamp Unix e le restituisce come intero.

idate() è una funzione PHP integrata che estrae un singolo elemento di informazione sulla data o sull'ora da un timestamp Unix e lo restituisce come intero. Il nome sta per integer date. A differenza di date(), che costruisce una stringa formattata da uno o più caratteri di formato, idate() accetta esattamente un carattere di formato e restituisce un numero semplice su cui è possibile eseguire operazioni matematiche immediatamente.

Questa pagina illustra la sintassi, i caratteri di formato supportati da idate(), esempi eseguibili, le differenze rispetto a date() e le insidie da tenere a mente.

Sintassi

idate(string $format, ?int $timestamp = null): int|false
  • $format — un singolo carattere di formato (vedi la tabella seguente). Passare una stringa più lunga di un carattere genera un avviso e restituisce false.
  • $timestamp — un timestamp Unix opzionale (secondi dal 1° gennaio 1970, UTC). Se omesso, vengono utilizzate la data e l'ora correnti.

Restituisce un intero, oppure false in caso di errore.

Caratteri di formato

idate() supporta un sottoinsieme dei caratteri di formato di date() — solo quelli che producono un valore numerico.

CodiceRestituisceEsempio
YAnno a quattro cifre2023
yAnno a due cifre23
mNumero del mese (1–12)3
nNumero del mese (uguale a m)3
dGiorno del mese (1–31)5
jGiorno del mese (uguale a d)5
HOra, formato 24 ore (0–23)17
GOra, formato 24 ore (uguale a H)17
iMinuti (0–59)30
sSecondi (0–59)45
NGiorno della settimana ISO (1 = lunedì … 7 = domenica)7
wGiorno della settimana (0 = domenica … 6 = sabato)0
zGiorno dell'anno, base zero (0–365)63
tNumero di giorni nel mese dato31
LAnno bisestile? 1 se sì, 0 se no0
UIl timestamp Unix stesso1678037445

Importante: idate() restituisce un numero, non una stringa con zero iniziale. idate('m') per marzo restituisce l'intero 3, non "03". Se hai bisogno dello zero iniziale, usa date('m'), che restituisce la stringa "03".

Esempio di 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

Poiché il valore restituito è un intero, puoi usarlo direttamente in operazioni aritmetiche e confronti:

<?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.

Utilizzare l'ora corrente

Quando si omette il secondo argomento, idate() legge la data e l'ora correnti, il che lo rende comodo per verifiche rapide:

<?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()
Lunghezza del formatoUn solo carattereQualsiasi numero di caratteri
Tipo restituitoint (o false)string
Zeri inizialiMai (3)Sì, dove definito ("03")
Caso d'usoSi ha bisogno di un numero per calcoli/confrontiSi ha bisogno di una stringa formattata e leggibile
<?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)

Quando usarlo

Ricorri a idate() quando vuoi un componente di data/ora come numero — ad esempio per costruire un contatore, confrontare due valori, indicizzare un array o fornire il risultato a ulteriori calcoli. Se il tuo obiettivo è visualizzare una data o un'ora formattata, usa date() (oppure strtotime() per analizzare prima un testo in un timestamp).

Insidie

  • Nessun formato a più caratteri. idate('Y-m-d') non funziona — genera un avviso e restituisce false. Chiama idate() una volta per ogni componente, oppure usa date().
  • Nessuno zero iniziale. Non affidarti a idate() per output a larghezza fissa; elimina sempre la spaziatura.
  • false sembra 0. In caso di errore idate() restituisce false, che è debolmente uguale a 0. Usa un controllo rigoroso (=== false) se un vero 0 (come la domenica da w) è un risultato valido.

Funzioni correlate

  • date() — formatta un timestamp come stringa.
  • mktime() — costruisce un timestamp Unix da componenti di data/ora.
  • strtotime() — analizza una stringa di data in inglese in un timestamp.
  • time() — ottiene il timestamp Unix corrente.

Practice

Practice

Pratica
Cosa fa la funzione idate() in PHP?
Cosa fa la funzione idate() in PHP?
Was this page helpful?