CascadiaPHP 2024

DateTimeZone::__construct

timezone_open

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

DateTimeZone::__construct -- timezone_openErstellt neues DateTimeZone-Objekt

Beschreibung

Objektorientierter Stil

public DateTimeZone::__construct(string $timezone)

Prozeduraler Stil

Erstellt neues DateTimeZone-Objekt.

Ein DateTimeZone-Objekt bietet Zugriff auf drei verschiedene Arten von Zeitzonen-Regeln: UTC-Offset (Typ 1), Zeitzonen-Abkürzung (Typ 2), und Zeitzonen-Kennungen wie in der IANA-Zeitzonendatenbank angegeben (Typ 3).

Das DateTimeZone-Objekt kann an DateTime- und DateTimeImmutable-Objekte angehängt werden, um die Zeitzone, die in diesen Objekten enthalten ist, in einer lokalen Zeitzone wiederzugeben.

Parameter-Liste

timezone

Eine der unterstützten Zeitzonen-Kennungen, ein Offset-Wert (+0200) oder eine Zeitzonen-Abkürzung (BST).

Rückgabewerte

Gibt bei Erfolg ein DateTimeZone-Objekt zurück. Prozeduraler Stil Im Fehlerfall wird false zurückgegeben.

Fehler/Exceptions

Wenn die angegebene Zeitzone als nicht korrekt eingestuft wird, wirft diese Methode eine DateInvalidTimeZoneException. Vor PHP 8.3 wird stattdessen eine Exception geworfen.

Changelog

Version Beschreibung
8.3.0 Ungültige Werte geben nun eine DateInvalidTimeZoneException statt einer allgemeinen Exception zurück.

Beispiele

Beispiel #1 Erstellen und Anhängen von DateTimeZone an ein 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";
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:


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

Beispiel #2 Fehler beim Initialisieren von DateTimeZone abfangen

<?php
// Fehlerbehandlung durch Abfangen von 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 />';
}
}
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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