Crée un nouvel objet DateTimeZone

# DateTimeZone::__construct

# timezone_open

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

DateTimeZone::__construct -- timezone_open — Crée un nouvel objet DateTimeZone

### Description

Style orienté objet

public function DateTimeZone::__construct(string `$timezone`)

Style procédural

function timezone_open(string `$timezone`): DateTimeZone|false

Crée un nouvel objet DateTimeZone.

Un objet DateTimeZone fournit l'accès à trois types différents de règles de fuseaux 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ées de fuseau horaire IANA (type `3`).

L'objet DateTimeZone peut être attaché aux objets DateTime et DateTimeImmutable afin d'être en mesure de rendre le fuseau horaire encapsulé par ces objets dans un fuseau horaire local.

### Liste de paramètres

`timezone`

  Un des fuseaux horaires supportés, une valeur de décalage (+0200), ou une abréviation de fuseau (BST).

### Valeurs de retour

Retourne un objet DateTimeZone, en cas de succès. Style procédural retourne `false` en cas d'erreur..

### Erreurs / Exceptions

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.

### Historique

Version | Description
--- | ---
8.3.0 | Les valeurs invalides lancent désormais une DateInvalidTimeZoneException au lieu d'une Exception générique.

### Exemples

Exemple #1 Création et attachement d'un DateTimeZone à 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";
    }

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() . "\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)

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open