W3docs

Husos horarios de PHP

A timezone is a region of the world that has a uniform standard time for legal, commercial, and social purposes. In PHP, timezones are represented as strings

Un huso horario es una región del mundo que tiene una hora estándar uniforme con fines legales, comerciales y sociales. En PHP, los husos horarios se representan como cadenas que identifican una región geográfica, como "America/New_York" o "Europe/London".

Funciones de husos horarios en PHP

PHP proporciona varias funciones para trabajar con husos horarios. A continuación se muestran algunas de las funciones más utilizadas:

1. date_default_timezone_set()

Esta función establece el huso horario predeterminado utilizado por todas las funciones de fecha/hora en un script. Toma una cadena de huso horario como argumento, como "America/New_York" o "Europe/London".

2. date_default_timezone_get()

Esta función devuelve el huso horario predeterminado utilizado por todas las funciones de fecha/hora en un script.

3. timezone_identifiers_list()

Esta función devuelve un array indexado que contiene todos los identificadores de husos horarios definidos.

4. timezone_abbreviations_list()

Esta función devuelve un array asociativo que contiene abreviaturas de husos horarios y sus desplazamientos respecto a UTC. (Nota: Obsoleto en PHP 8.1 y eliminado en PHP 8.2. Utilice DateTimeZone::listIdentifiers() o clases OOP modernas en su lugar.)

5. timezone_name_from_abbr()

Esta función devuelve el nombre del huso horario a partir de una abreviatura.

6. DateTimeZone::getOffset()

Este método devuelve el desplazamiento del huso horario respecto a UTC para un objeto DateTime dado.

Enfoque moderno: Aunque las funciones procedurales anteriores son compatibles con versiones antiguas de PHP, el desarrollo moderno de PHP recomienda utilizar las clases DateTime y DateTimeZone. Ofrecen un mejor diseño orientado a objetos, manejo automático del horario de verano y son el estándar para las aplicaciones PHP actuales.

Ejemplos de uso

Veamos algunos ejemplos prácticos del uso de las funciones de husos horarios en PHP.

Ejemplo 1: Establecer el huso horario predeterminado

Supongamos que desea establecer el huso horario predeterminado en "America/New_York". Puede hacerlo utilizando la función date_default_timezone_set(), de la siguiente manera:

Establecer el huso horario predeterminado en PHP

date_default_timezone_set("America/New_York");

Esto establece el huso horario predeterminado en "America/New_York".

Ejemplo 2: Obtener el huso horario predeterminado

Supongamos que desea obtener el huso horario predeterminado. Puede hacerlo utilizando la función date_default_timezone_get(). Para garantizar que este ejemplo se ejecute de forma independiente, primero establecemos un huso horario predeterminado:

Obtener el huso horario predeterminado

<?php

date_default_timezone_set('UTC');
$timezone = date_default_timezone_get();
echo "The default timezone is: " . $timezone;

?>

Esto muestra "El huso horario predeterminado es: UTC".

Ejemplo 3: Listar identificadores de husos horarios

Supongamos que desea listar todos los identificadores de husos horarios definidos. Puede hacerlo utilizando la función timezone_identifiers_list():

Listar identificadores de husos horarios en PHP

<?php

date_default_timezone_set('UTC');
$timezones = timezone_identifiers_list();
foreach ($timezones as $timezone) {
    echo $timezone . "\n";
}

?>

Esto muestra una lista de todos los identificadores de husos horarios definidos.

Ejemplo 4: Conversión de husos horarios con clases modernas

Para la conversión de husos horarios y el manejo automático del horario de verano, utilice las clases DateTime y DateTimeZone:

Conversión de husos horarios en PHP

<?php

$dt = new DateTime('2024-01-01 12:00:00', new DateTimeZone('America/New_York'));
$dt->setTimezone(new DateTimeZone('Europe/London'));
echo $dt->format('Y-m-d H:i:s P');

?>

Esto muestra la hora convertida en Londres, teniendo automáticamente en cuenta las diferencias de horario de verano.

Conclusión

En este artículo, hemos tratado los husos horarios en PHP y las funciones utilizadas para trabajar con ellos. Hemos explicado qué son los husos horarios y proporcionado ejemplos tanto de funciones procedurales antiguas como de enfoques modernos orientados a objetos. Al utilizar estas funciones en sus aplicaciones PHP, podrá trabajar fácilmente con los husos horarios y garantizar que sus cálculos de fecha y hora sean precisos y confiables.

Práctica

Práctica

¿Qué puede inferir sobre el manejo de husos horarios en PHP basándose en la información encontrada en este sitio web?