DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeZone::__construct -- timezone_openCrea un nuevo objeto DateTimeZone

Descripción

Estilo orientado a objetos

public DateTimeZone::__construct(string $timezone)

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.

Parámetros

timezone

Una de las zonas horarias soportadas, un valor de desplazamiento (+0200), o una abreviatura de zona (BST).

Valores devueltos

Devuelve un objeto DateTimeZone en caso de éxito. Estilo por procedimientos devuelve false en caso de error..

Errores/Excepciones

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.

Historial de cambios

Versión Descripción
8.3.0 Los valores inválidos ahora lanzan una DateInvalidTimeZoneException en lugar de una Exception genérica.

Ejemplos

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:


Thu, 02 Jun 2022 16:44:48 +0100 — Europe/London
Thu, 02 Jun 2022 20:29:48 +0445 — +04:45
Thu, 02 Jun 2022 09:44:48 -0600 — -06:00
Thu, 02 Jun 2022 17:44:48 +0200 — CEST

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)

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top