(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::__construct -- timezone_open — Cria um novo objeto DateTimeZone
Estilo orientado a objetos
Estilo procedural
Cria um novo objeto DateTimeZone.
Um objeto DateTimeZone dá acesso a três diferentes tipos de regras de
fuso horário: deslocamento UTC (tipo 1
), abreviação de fuso (tipo
2
), e identificadores
de fuso horário como publicado no banco de dados de fusos horários da IANA
(tipo 3
).
O objeto DateTimeZone pode ser anexado aos objetos DateTime e DateTimeImmutable para que sejam capazes de mostrar o fuso horário encapsulado por estes objetos em um fuso horário local.
timezone
Um dos nomes de fuso horário suportados, um valor de deslocamento (+0200), ou um identificador de fuso (BST).
Retorna um objeto DateTimeZone em caso de sucesso.
Estilo procedural retorna false
em caso de falha.
Este método lança uma exceção DateInvalidTimeZoneException se o fuso horário informado não for reconhecido com um fuso horário válido. Antes do PHP 8.3, era uma exceção Exception.
Versão | Descrição |
---|---|
8.3.0 | Invalid values now return a DateInvalidTimeZoneException instead of a generic Exception. |
Exemplo #1 Criando e anexando DateTimeZone a um 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";
}
?>
O exemplo acima produzirá:
Exemplo #2 Capturando erros na instanciação de DateTimeZone
<?php
// Lidando com erros através de captura de exceções
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');
foreach ($timezones as $tz) {
try {
$mars = new DateTimeZone($tz);
} catch(Exception $e) {
echo $e->getMessage() . '<br />';
}
}
?>
O exemplo acima produzirá:
DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos) DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)