(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::__construct -- timezone_open — Crea un nuevo objeto DateTimeZone
Estilo orientado a objetos
Estilo por procedimientos
Crea un nuevo objeto DateTimeZone.
Un objeto DateTimeZone proporciona acceso a tres tipos diferentes de reglas
de zona horaria: un desplazamiento UTC (tipo 1
), una
abreviatura de zona horaria (tipo 2
), y un
identificador de zona horaria tal como
se publica en la base de datos de zonas horarias IANA (tipo 3
).
El objeto DateTimeZone puede ser adjuntado a los objetos DateTime y DateTimeImmutable con el fin de poder representar la zona horaria encapsulada por estos objetos en una zona horaria local.
timezone
Una de las zonas horarias soportadas, un valor de desplazamiento (+0200), o una abreviatura de zona (BST).
Devuelve un objeto DateTimeZone en caso de éxito.
Estilo por procedimientos devuelve false
en caso de error..
Este método lanza una DateInvalidTimeZoneException si la zona horaria proporcionada no es reconocida como una zona horaria válida. Anteriormente a PHP 8.3, esto era una Exception.
Versión | Descripción |
---|---|
8.3.0 | Los valores inválidos ahora lanzan una DateInvalidTimeZoneException en lugar de una Exception genérica. |
Ejemplo #1 Creación y adjuntado de DateTimeZone a un DateTimeImmutable
<?php
$d = new DateTimeImmutable("2022-06-02 15:44:48 UTC");
$timezones = [ 'Europe/London', 'GMT+04:45', '-06:00', 'CEST' ];
foreach ($timezones as $tz) {
$tzo = new DateTimeZone($tz);
$local = $d->setTimezone($tzo);
echo $local->format(DateTimeInterface::RFC2822 . ' — e'), "\n";
}
?>
El resultado del ejemplo sería:
Ejemplo #2 Intercepción de errores con DateTimeZone
<?php
// Manejo de errores por intercepción de excepciones
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');
foreach ($timezones as $tz) {
try {
$mars = new DateTimeZone($tz);
} catch(Exception $e) {
echo $e->getMessage() . '<br />';
}
}
?>
El resultado del ejemplo sería:
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos) DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)