(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeZone::__construct -- timezone_open — Crée un nouvel objet DateTimeZone
Style orienté objet
Style procédural
Crée un nouvel objet DateTimeZone.
   Un objet DateTimeZone fournit l'accès à trois types différents de règles
   de fuseau horaires : un décalage UTC (type 1), une
   abréviation de fuseau horaire (type 2), et un
   identifiant de fuseau horaire tel que
   publié dans la base de donnée de fuseau horaire IANA (type 3).
  
L'objet DateTimeZone peut être attaché aux objets DateTime et DateTimeImmutable enfin d'être en mesure de rendre le fuseau horaire encapsulé par ces objets dans un fuseau horaire local.
timezoneUn des fuseaux horaires supportés, une valeur de décalage (+0200), ou une abréviation de fuseau (BST).
   Retourne un objet DateTimeZone, en cas de succès.
   Style procédural retourne false en cas d'erreur..
  
Cette méthode lance une DateInvalidTimeZoneException si le fuseau horaire fourni n'est pas reconnu comme un fuseau horaire valide. Antérieur à PHP 8.3, ceci était une Exception.
| Version | Description | 
|---|---|
| 8.3.0 | Les valeurs invalides lance désormais une DateInvalidTimeZoneException au lieu d'une Exception générique. | 
Exemple #1 Creating and attaching DateTimeZone to a 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";
}L'exemple ci-dessus va afficher :
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
Exemple #2 Interception des erreurs avec DateTimeZone
<?php
// Gestion des erreurs par interception des exceptions
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');
foreach ($timezones as $tz) {
    try {
        $mars = new DateTimeZone($tz);
        echo $mars->getName() . "\n";
    } catch(Exception $e) {
        echo $e->getMessage() . '<br />';
        echo $e->getMessage() . "\n";
    }
}L'exemple ci-dessus va afficher :
Europe/London DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos) DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)
