Operatività

Perché il tuo sito mostra un'ora diversa dalla tua

date_default_timezone_get legge prima il fuso impostato dalla funzione, poi date.timezone. Se i due passi non riescono, il manuale PHP dice che restituisce UTC.

Marco Conte 3 min di lettura

Perché il tuo sito mostra un'ora diversa dalla tua
In questa guida (4)
  1. 1Il valore nel file di configurazione
  2. 2L'orologio del sistema è un altro comando
  3. 3Se l'ora storta è nella sitemap
  4. 4Un confronto che si fa sulla propria macchina

Un orario scritto dal sito, accanto a un articolo, in un log o nel nome di un file, può non coincidere con l'orologio di chi legge. L'8 novembre 2026 ho letto il manuale di PHP e la pagina di timedatectl. Non ho eseguito i comandi su un server e non ho misurato un sito.

La funzione che risponde è date_default_timezone_get(). Il manuale, in ordine di preferenza, le fa leggere prima il fuso impostato con date_default_timezone_set(), se c'è, e poi l'opzione date.timezone, se è impostata. Se nessuno dei due passi riesce, la funzione restituisce UTC.

Il valore nel file di configurazione

Nella pagina di configurazione date.timezone è una stringa. Il valore predefinito indicato in tabella è UTC e la direttiva è modificabile dove si può cambiare un'impostazione di tipo INI_ALL. La stessa pagina scrive che, da PHP 8.2, un valore non valido o una stringa vuota produce un avviso. Non dice che il programma vada a leggere da solo l'orologio del sistema operativo.

date_default_timezone_set() imposta il fuso usato da tutte le funzioni di data e ora. Restituisce false se l'identificativo non è valido, true negli altri casi. Gli esempi della pagina usano Europe/London e America/Los_Angeles. Europe/Rome è nell'elenco Europe aperto lo stesso giorno. È un identificativo della lista, non un orario che ho fatto stampare.

L'orologio del sistema è un altro comando

timedatectl, senza argomenti, mostra le impostazioni dell'orologio di sistema e dell'orologio hardware, e se la sincronizzazione di rete è attiva. set-timezone cambia il fuso di sistema e il collegamento che la macchina usa come fuso locale. È il fuso della macchina. L'ordine pubblicato per date_default_timezone_get non lo nomina: prima la funzione, poi date.timezone, altrimenti UTC.

Due macchine possono quindi segnare ore diverse sulla stessa pagina. Una ha date.timezone su Europe/Rome. L'altra ha la funzione che non è stata chiamata e l'opzione vuota o assente, e la lettura del manuale porta a UTC. Cambiare solo timedatectl non entra in quell'ordine. Il fuso va scritto dove il manuale lo legge, oppure passato in modo esplicito dalle funzioni che lo accettano. Qui non documento una funzione che non ho riaperto.

Se l'ora storta è nella sitemap

Un'ora diversa dentro il campo lastmod di una sitemap è un altro controllo. Il formato di quella data, e il fatto che l'ora si possa omettere, sono già in Come il tuo sito scrive l'ultima modifica nella sitemap. Il fuso di PHP spiega l'orologio del programma. Non sostituisce il formato del file.

Un confronto che si fa sulla propria macchina

Si legge la stringa restituita da date_default_timezone_get() e la si mette accanto al fuso che timedatectl mostra per il sistema. Se le due scritte differiscono, le funzioni di data che non fissano un fuso proprio seguono la stringa di PHP. Se date_default_timezone_set() risponde false, l'identificativo non è nella lista. Non allego un output: non ho lanciato il controllo su un sito di esempio.

L'immagine di copertina, sulla scheda Wikimedia, è di Daderot, con data 24 luglio 2013 e licenza CC0. È un marcatempo del Wisconsin Historical Museum, usato nell'Ottocento a Appleton, nel Wisconsin. Non è l'orologio di un server e non è una misura di date.timezone.

Potrebbe interessarti anche...

Hai bisogno di scegliere una webagency per il tuo progetto?

Abbiamo la soluzione giusta

Parliamone
  • Consulenza specializzata
  • Soluzioni su misura
  • Risultati concreti

Tecnologialiberaper tutti

Hai bisogno d'aiuto?

Parla con noi. Il nostro supporto è attivo tutti i giorni dalle 9 alle 18

+390835239514 Chiamaci

Crea il tuo eCommerce

Creiamo eCommerce su misura senza farti spendere un patrimonio

info@roxxoitalia.com Scopri il nostro CMS

Crea il tuo sito web

Siti web già pronti per andare online. Vuoi saperne di più? Contattaci

info@roxxoitalia.com Scrivici