Funzione data() e ora PHP: come ottenere il timestamp corrente?

โšก Riepilogo intelligente

La funzione PHP date() formatta i timestamp in date e orari leggibili. Questa guida illustra la sintassi delle date, il timestamp Unix, come elencare e impostare i fusi orari, la funzione mktime per la creazione di timestamp e fornisce un riferimento completo dei caratteri di formato per ora, giorno, mese e anno.

  • ???? Cosa fa date(): La funzione date trasforma un timestamp in una stringa formattata utilizzando caratteri come Y, m e d per anno, mese e giorno.
  • ๏ธ Timestamp Unix: Un timestamp rappresenta il numero di secondi trascorsi dal 1ยฐ gennaio 1970 GMT, e la funzione time() restituisce il valore corrente.
  • ๐ŸŒ Fusi orari: date_default_timezone_set modifica il fuso orario attivo e DateTimeZone::listIdentifiers elenca tutti i fusi orari supportati.
  • ๐Ÿ”ง mktime: La funzione mktime crea un timestamp a partire da un'ora, un minuto, un secondo, un mese, un giorno e un anno specifici.
  • ๐Ÿ”ค Caratteri di formato: Singole lettere controllano l'output, ad esempio H per l'ora in formato 24 ore, l per il nome del giorno della settimana e F per il nome del mese.
  • ๐Ÿ“ Tabelle di riferimento: Le tabelle raggruppate elencano i caratteri di formato per ora, giorno, mese e anno, con un esempio eseguibile per ciascuno.
  • ๐Ÿค– Assistenza AI: Gli strumenti di intelligenza artificiale possono generare la formattazione delle date e i codici di differenza, contribuendo a risolvere i problemi legati ai fusi orari.

Funzione PHP date()

Funzione PHP date()

La funzione `date` di PHP รจ una funzione integrata che semplifica la gestione dei dati di tipo data. Viene utilizzata per formattare una data o un'ora in un formato leggibile. Puรฒ essere utilizzata, ad esempio, per visualizzare la data di pubblicazione di un articolo o per registrare l'ultima data di aggiornamento dei dati in un database.

Sintassi ed esempio della data PHP

La funzione PHP date() ha la seguente sintassi di base.

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

QUI,

  • โ€œdate(โ€ฆ)โ€ รจ la funzione che restituisce il timestamp corrente formattato in PHP sul server.
  • "formato" indica il formato generale che desideriamo per il nostro output, ad esempio:
    • "Ymd" per il formato data PHP YYYY-MM-DD
    • โ€œYโ€ per visualizzare l'anno corrente
  • โ€œ[timestamp]โ€ รจ facoltativo. Se non viene fornito alcun timestamp, PHP utilizzerร  la data e l'ora correnti del server.

Vediamo un semplice esempio che mostra l'anno corrente.

<?php

echo date("Y");

?>

Produzione:

2026

Cos'รจ un TimeStamp?

Un timestamp in PHP รจ un valore numerico in secondi tra l'ora corrente e il valore all'1st Gennaio 1970, ore 00:00:00, fuso orario di Greenwich (GMT).

Il valore restituito dalla funzione temporale dipende dal fuso orario predefinito.

Il fuso orario predefinito รจ impostato nel file php.ini. Puรฒ anche essere impostato a livello di codice utilizzando la funzione date_default_timezone_set.

Il codice seguente visualizza il timestamp corrente.

<?php

echo time();

?>

Supponendo che tu abbia salvato il file timestamp.php nella cartella phptuts, vai al URL http://localhost/phptuts/timestamp.php

TimeStamp

Nota: il valore del timestamp non รจ costante. Cambia ogni secondo.

Ottenere un elenco di identificatori di fuso orario disponibili

Prima di esaminare come impostare il fuso orario predefinito a livello di programmazione, vediamo come ottenere un elenco dei fusi orari supportati.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

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

echo $list . "<br/>";

}
?>

QUI,

  • โ€œ$timezone_identifiers = DateTimeZone::listIdentifiers();โ€ richiama il metodo statico listIdentifiers della classe integrata DateTimeZone. Il metodo listIdentifiers restituisce un elenco di identificatori assegnati alla variabile $timezone_identifiers.
  • โ€œforeach{โ€ฆ}โ€ scorre lโ€™array e stampa i valori.

Supponendo che tu abbia salvato il file list_time_zones.php nella cartella phptuts, vai al file URL http://localhost/phptuts/list_time_zones.php

Identificatori del fuso orario

PHP imposta il fuso orario in modo programmatico

La funzione date_default_timezone_set consente di impostare il fuso orario predefinito da uno script PHP.

Il fuso orario impostato verrร  quindi utilizzato da tutte le date funzioni PHP nei tuoi script. Ha la seguente sintassi.

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

QUI,

  • โ€œdate_default_timezone_set()โ€ รจ la funzione che imposta il fuso orario predefinito
  • "string $timezone_identifier" รจ l'identificatore del fuso orario

Lo script seguente visualizza l'ora in base al fuso orario predefinito impostato in php.ini. Successivamente, cambia il fuso orario predefinito in Asia/Calcutta e visualizza nuovamente l'ora.

<?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");
?>

Supponendo che tu abbia salvato il file set_time_zone.php nella cartella phptuts, vai al file URL http://localhost/phptuts/set_time_zone.php

PHP imposta il fuso orario in modo programmatico

Funzione PHP Mktime

La funzione mktime restituisce il timestamp in a Unix formato.

La sintassi รจ la seguente.

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

QUI,

  • โ€œmktime(โ€ฆ)โ€ รจ la funzione di marcatura temporale di PHP
  • โ€œoraโ€ รจ facoltativo; รจ il numero dellโ€™ora
  • โ€œminutoโ€ รจ facoltativo; indica il numero di minuti
  • โ€œsecondoโ€ รจ facoltativo; indica il numero di secondi
  • โ€œmeseโ€ รจ facoltativo; indica il numero del mese
  • โ€œgiornoโ€ รจ facoltativo; รจ il numero del giorno
  • โ€œannoโ€ รจ facoltativo; รจ il numero dellโ€™anno
  • Il parametro โ€œis_dstโ€ รจ facoltativo e viene utilizzato per determinare l'ora legale. Il valore 1 indica se รจ in vigore l'ora legale, 0 se non lo รจ e -1 se non รจ noto.

Vediamo ora un esempio che crea un timestamp per la data 13/10/2025 utilizzando la funzione mktime.

<?php

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

?>

QUI,

  • โ€œ0,0,0โ€ rappresenta rispettivamente lโ€™ora, il minuto e il secondo.
  • "10" รจ il mese dell'anno
  • โ€œ13โ€ รจ il giorno del mese
  • โ€œ2025โ€ รจ lโ€™anno

Produzione:

1760328000

Riferimento al formato data in PHP

Le tabelle seguenti mostrano i caratteri di formato piรน comuni utilizzati quando si lavora con le funzioni di data di PHP.

Parametri temporali

Parametro Descrizione Esempio
"R" Restituisce la data e l'ora complete
<?php
echo date("r");
?>
โ€œaโ€, โ€œAโ€ Restituisce se l'ora corrente รจ rispettivamente am o pm, AM o PM
<?php
echo date("a");
echo date("A");
?>
โ€œgโ€, โ€œGโ€ Restituisce rispettivamente l'ora senza zeri iniziali [da 1 a 12], [da 0 a 23].
<?php
echo date("g");
echo date("G");
?>
โ€œhโ€, โ€œHโ€ Restituisce l'ora con zeri iniziali [da 01 a 12], [da 00 a 23] rispettivamente
<?php
echo date("h");
echo date("H");
?>
"รˆ" Restituisce i minuti/secondi con zeri iniziali [da 00 a 59]
<?php
echo date("i");
echo date("s");
?>

Parametri giornalieri

Parametro Descrizione Esempio
"D" Restituisce il giorno del mese con zeri iniziali [da 01 a 31]
<?php
echo date("d");
?>
"J" Restituisce il giorno del mese senza zeri iniziali [da 1 a 31]
<?php
echo date("j");
?>
โ€œDโ€ Restituisce le prime 3 lettere del nome del giorno [da domenica a sabato]
<?php
echo date("D");
?>
"l" Restituisce il nome del giorno della settimana [da domenica a sabato].
<?php
echo date("l");
?>
"Nel" Restituisce il giorno della settimana senza zeri iniziali [da 0 a 6]; la domenica รจ rappresentata da zero (0) fino al sabato rappresentato da sei (6)
<?php
echo date("w");
?>
"Z" Restituisce il giorno dell'anno senza spazi iniziali [da 0 a 365]
<?php
echo date("z");
?>

Parametri mensili

Parametro Descrizione Esempio
โ€œMโ€ Restituisce il numero del mese con zeri iniziali [da 01 a 12]
<?php
echo date("m");
?>
"N" Restituisce il numero del mese senza zeri iniziali [da 1 a 12]
<?php
echo date("n");
?>
โ€œMโ€ Restituisce le prime 3 lettere del nome del mese [da gennaio a dicembre]
<?php
echo date("M");
?>
"F" Restituisce il nome del mese [da gennaio a dicembre]
<?php
echo date("F");
?>
"T" Restituisce il numero di giorni in un mese [da 28 a 31]
<?php
echo date("t");
?>

Parametri dell'anno

Parametro Descrizione Esempio
"L" Restituisce 1 se รจ un anno bisestile e 0 se non lo รจ.
<?php
echo date("L");
?>
"Y" Restituisce l'anno nel formato a quattro cifre
<?php
echo date("Y");
?>
"Y" Restituisce l'anno nel formato a due cifre (da 00 a 99).
<?php
echo date("y");
?>

DOMANDE FREQUENTI

La funzione date() รจ una semplice funzione procedurale che formatta un timestamp. La classe DateTime รจ orientata agli oggetti e supporta operazioni aritmetiche, confronti, fusi orari e immutabilitร , risultando quindi piรน adatta per logiche di data complesse in applicazioni di grandi dimensioni.

Utilizza strtotime(), che legge formati come '2025-10-13' o 'next Mondaye restituisce un timestamp Unix. Per un'analisi rigorosa di un formato noto, DateTime::createFromFormat รจ piรน sicuro perchรฉ fallisce chiaramente in caso di input non valido.

Crea due oggetti DateTime e chiama il metodo diff(), che restituisce un oggetto DateInterval. Puoi quindi leggere i giorni, i mesi o gli anni, ad esempio $start->diff($end)->days per ottenere il numero totale di giorni tra le date.

Sรฌ. Descrivi il formato di input e di output e l'IA puรฒ generare codice date(), DateTime o strtotime, inclusa l'aggiunta di intervalli o la conversione di fusi orari. Testalo con casi limite come gli anni bisestili e la fine del mese.

Sรฌ. L'IA puรฒ individuare una chiamata mancante a date_default_timezone_set, una discrepanza tra il fuso orario del server e quello di visualizzazione o problemi relativi all'ora legale, quindi consigliare di utilizzare DateTime con fusi orari espliciti per rendere il comportamento prevedibile.

Riassumi questo post con: