timezone_identifiers_list()
Introducción
Los identificadores de zona horaria de PHP son cadenas utilizadas para especificar una zona horaria para una fecha u hora determinadas. Siguen el formato Area/Location (por ejemplo, America/New_York, Europe/London) y se basan en la base de datos de zonas horarias de IANA. Estos identificadores se pueden usar con la función date_default_timezone_set() para establecer la zona horaria predeterminada de un script o con la clase DateTimeZone para crear un nuevo objeto de zona horaria.
La función timezone_identifiers_list() devuelve un array con todos los identificadores de zona horaria compatibles. Esto es útil para generar menús desplegables o validar la entrada del usuario.
¿Cómo usar timezone_identifiers_list() en PHP?
<?php
$identifiers = timezone_identifiers_list();
print_r($identifiers);La función devuelve un array indexado numéricamente que contiene cadenas como Africa/Abidjan, America/New_York, Asia/Tokyo, etc. Puedes iterar sobre este array para mostrar las zonas horarias disponibles:
<?php
foreach (timezone_identifiers_list() as $tz) {
echo $tz . "\n";
}Para aplicar uno de estos identificadores, pásalo a date_default_timezone_set() o new DateTimeZone(). Por ejemplo, para establecer la zona horaria a la Hora Estándar del Este (EST), usarías el siguiente código:
¿Cómo usar un identificador de zona horaria en PHP?
<?php
date_default_timezone_set('America/New_York');Alternativamente, puedes usar la clase DateTimeZone para crear un nuevo objeto de zona horaria y especificar el identificador como parámetro. Por ejemplo:
¿Cómo usar la clase DateTimeZone en PHP?
<?php
$timezone = new DateTimeZone('Asia/Tokyo');Esto crea un nuevo objeto de zona horaria para la zona horaria Asia/Tokyo.
Es importante tener en cuenta que algunos identificadores de zona horaria pueden no ser compatibles con todos los sistemas o pueden estar obsoletos. Para garantizar la compatibilidad y la precisión, recomendamos utilizar la base de datos de zonas horarias mantenida por la Autoridad de Números Asignados en Internet (IANA).
Además de los identificadores de zona horaria estándar, PHP también admite zonas horarias personalizadas. Estas se pueden especificar utilizando un desplazamiento UTC. Por ejemplo, para especificar un desplazamiento UTC de -8 horas, puedes usar el siguiente código:
Ejemplo de zonas horarias personalizadas en PHP
<?php
$timezone = new DateTimeZone('-08:00');Esto crea un nuevo objeto de zona horaria con un desplazamiento UTC de -8 horas.
En general, timezone_identifiers_list() proporciona una forma potente y flexible de gestionar las zonas horarias en tus aplicaciones PHP. Al utilizar el identificador correcto para tu región, puedes garantizar cálculos de tiempo precisos y consistentes en todos tus sistemas.
Práctica
¿Cuál de los siguientes es un identificador de zona horaria válido en PHP?