CakeFest 2024: The Official CakePHP Conference

DateTimeZone::__construct

timezone_open

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

DateTimeZone::__construct -- timezone_openCrée un nouvel objet DateTimeZone

Description

Style orienté objet

public DateTimeZone::__construct(string $timezone)

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.

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 lance désormais une DateInvalidTimeZoneException au lieu d'une Exception générique.

Exemples

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);
} catch(
Exception $e) {
echo
$e->getMessage() . '<br />';
}
}
?>

L'exemple ci-dessus va afficher :

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