W3docs

Fusi orari PHP

Un fuso orario è una regione del mondo con un'ora standard uniforme. In PHP i fusi orari sono rappresentati come stringhe che identificano una regione geografica.

Un fuso orario è una regione del mondo che adotta un'ora standard uniforme per scopi legali, commerciali e sociali. In PHP, i fusi orari sono rappresentati come stringhe che identificano una regione geografica, come "America/New_York" o "Europe/London".

Funzioni PHP per i fusi orari

PHP offre diverse funzioni per lavorare con i fusi orari. Ecco alcune delle più comunemente utilizzate:

1. date_default_timezone_set()

Questa funzione imposta il fuso orario predefinito utilizzato da tutte le funzioni data/ora in uno script. Accetta come argomento una stringa di fuso orario, come "America/New_York" o "Europe/London".

2. date_default_timezone_get()

Questa funzione restituisce il fuso orario predefinito utilizzato da tutte le funzioni data/ora in uno script.

3. timezone_identifiers_list()

Questa funzione restituisce un array indicizzato contenente tutti gli identificatori di fuso orario definiti.

4. timezone_abbreviations_list()

Questa funzione restituisce un array associativo contenente le abbreviazioni dei fusi orari e i relativi scostamenti rispetto all'UTC. (Nota: deprecata in PHP 8.1 e rimossa in PHP 8.2. Usare invece DateTimeZone::listIdentifiers() o le classi OOP moderne.)

5. timezone_name_from_abbr()

Questa funzione restituisce il nome del fuso orario a partire da un'abbreviazione.

6. DateTimeZone::getOffset()

Questo metodo restituisce lo scostamento del fuso orario rispetto all'UTC per un dato oggetto DateTime.

Approccio moderno: Sebbene le funzioni procedurali sopra indicate siano supportate nelle versioni legacy di PHP, lo sviluppo PHP moderno raccomanda l'uso delle classi DateTime e DateTimeZone. Offrono un design orientato agli oggetti migliore, la gestione automatica dell'ora legale e sono lo standard per le applicazioni PHP attuali.

Esempi d'uso

Vediamo alcuni esempi pratici dell'utilizzo delle funzioni PHP per i fusi orari.

Esempio 1: Impostare il fuso orario predefinito

Supponiamo di voler impostare il fuso orario predefinito su "America/New_York". È possibile farlo usando la funzione date_default_timezone_set(), in questo modo:

Impostare il fuso orario predefinito in PHP

date_default_timezone_set("America/New_York");

Questo imposta il fuso orario predefinito su "America/New_York".

Esempio 2: Ottenere il fuso orario predefinito

Supponiamo di voler ottenere il fuso orario predefinito. È possibile farlo usando la funzione date_default_timezone_get(). Per garantire che questo esempio venga eseguito in modo indipendente, impostiamo prima un fuso orario predefinito:

Ottenere il fuso orario predefinito

php— editable, runs on the server

Questo produce in output "The default timezone is: UTC".

Esempio 3: Elencare gli identificatori di fuso orario

Supponiamo di voler elencare tutti gli identificatori di fuso orario definiti. È possibile farlo usando la funzione timezone_identifiers_list():

Elencare gli identificatori di fuso orario in PHP

php— editable, runs on the server

Questo produce in output un elenco di tutti gli identificatori di fuso orario definiti.

Esempio 4: Convertire i fusi orari con le classi moderne

Per la conversione dei fusi orari e la gestione automatica dell'ora legale, usare le classi DateTime e DateTimeZone:

Convertire i fusi orari in PHP

php— editable, runs on the server

Questo produce in output l'ora convertita a Londra, tenendo conto automaticamente delle differenze di ora legale.

Conclusione

In questo articolo abbiamo discusso i fusi orari PHP e le funzioni utilizzate per lavorare con essi. Abbiamo spiegato cosa sono i fusi orari e fornito esempi sia di funzioni procedurali legacy sia di approcci moderni orientati agli oggetti. Usando queste funzioni nelle applicazioni PHP, è possibile lavorare facilmente con i fusi orari e garantire che i calcoli di data e ora siano precisi e affidabili.

Esercizio

Pratica
Cosa si può dedurre sulla gestione dei fusi orari in PHP in base alle informazioni presenti in questo sito?
Cosa si può dedurre sulla gestione dei fusi orari in PHP in base alle informazioni presenti in questo sito?
Was this page helpful?