back to top

PHP: impostare il fuso orario italiano

Le tue pagine PHP non mostrano l’orario corretto? Probabilmente ciò accade perché il provider, presso il quale hai acquistato il tuo hosting, ha impostato un fuso orario differente rispetto a quello italiano.

Il problema del fuso orario

Può capitare che l’orario del server, su cui si trovano le nostre pagine web, non sia corretto, ad esempio perchè il nostro hosting provider si trova all’estero e, pertanto, il server utilizza un fuso orario differente. Facciamo un esempio supponendo che il provider abbia i suoi server a New York dove il fuso orario comporta una differenza di 6 ore rispetto all’Italia (in pratica, quando da noi sono le 16:00, nella Grande Mela sono le 10:00). Ciò comporta un problema pratico di non poco conto per lo sviluppaore in quanto l’utilizzo dell’orologio di sistema produrrà risultati non adeguati alle aspettative: se si registra un evento, ad esempio, la data e l’orario che verranno memorizzati non saranno quelli italiani ma quelli di New York creando una certa confusione a livello applicativo!

Questo problema, tuttavia, si può risolvere facilmente cambiando alcune impostazioni di PHP.

Modificare php.ini

Se hai la possibilità di accedere al file php.ini (ad esempio perché hai acquistato una VPS) puoi risolvere facilmente il problema cambiando il valore di date.timezone in questo modo:

date.timezone = " Europe/Rome"

Il codice di esempio imposta il fuso orario italiano. La lista completa dei fusi orari supportati è disponibile a questa pagina del sito ufficiale di PHP.

Modificare il timezone mediante .htaccess

Se non si ha accesso al file di configurazione di PHP si può provare ad effettuare questa modifica mediante .htaccess in questo modo:

php_value date.timezone " Europe/Rome"

Modificare il fuso orario all’interno del codice PHP

Come risolvere questo problema di discrepanza tra l’orario impostato sul server e quello italiano se non si ha la possibilità di editare il file php.ini ne tantomeno utilizzare .htaccess? IN questo caso, non avendo modo di riconfigurare l’orario del server, dovremo attuare una strategia differente.

Il modo corretto per risolvere questa problematica è utilizzare la direttiva date_default_timezone_set(). Nel nostro caso, per impostare la corretta timezone dovremo aggiungere in cima ai nostri script PHP la seguente direttiva:

date_default_timezone_set('Europe/Rome');

Automaticamente il web server effettuerà gli opportuni calcoli per adeguare l’orario corrente al fuso italiano.

In alternativa all’utilizzo di questa direttiva è anche possibile fare ricorso ad un piccolo espediente per “aggiustare la data” del server. Ritoranando all’esempio di New York potremo utilizzare queste due righe di codice per avere una data in italiano corretta:

$oggi = date('d-m-Y H:i');
$oggi = strftime("%d-%m-%Y %H-%i", strtotime("$oggi + 6 hour"));

Naturalmente potrete convertire il valore di “$oggi” nel formato più adatto alle vostre esigenze facendo ricorso alle funzioni per la gestione di date ed orari di PHP.

Altri contenuti interessanti

Pubblicità
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Cannot modify header information – headers already sent: come risolvere l’errore PHP

L'errore di PHP cannot modify header information - headers...

Ricavare l’estensione di un file con PHP

Quando si lavora con i file in un'applicazione web,...

GD Library: creazione, manipolazione e ridimensionamento immagini con PHP

Le librerie GD (o GD Library), sono componenti fondamentali...

5 script PHP per gestire BBCode

A volte può aversi l'esigenza di dover offrire agli...

Estrarre hostname e dominio da una URL con PHP

Grazie alla funzione parse_url() di PHP è possibile analizzare...
Pubblicità