Signatur
Beschreibung
timezone_open() ist die prozedurale Variante des DateTimeZone-Konstruktors. Die Funktion akzeptiert einen gültigen Zeitzonenbezeichner (z. B. Europe/Berlin, UTC oder America/New_York) und gibt ein entsprechendes DateTimeZone-Objekt zurück, das zur Arbeit mit zeitzonen-abhängigen Datum-/Uhrzeit-Operationen genutzt werden kann.
Das zurückgegebene Objekt lässt sich anschließend an Funktionen wie date_create(), date_timezone_set() oder timezone_offset_get() übergeben, um Datum-/Uhrzeit-Werte in einer bestimmten Zeitzone zu erzeugen oder umzurechnen.
Gültige Bezeichner entsprechen der PHP-Zeitzonenliste, die auf der IANA-Zeitzonendatenbank basiert. Ungültige Bezeichner führen dazu, dass false zurückgegeben wird und eine Warnung ausgelöst wird.
In modernem objektorientiertem Code wird meist direkt new DateTimeZone($timezone) bevorzugt; timezone_open() ist aber funktional identisch und in prozedural geschriebenem Code gebräuchlich.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $timezone Pflicht | string | Ein gültiger Zeitzonenbezeichner, z. B. Europe/Berlin, UTC oder +02:00. Ungültige Werte führen zu false als Rückgabewert und einer PHP-Warnung. |
Rückgabewert
DateTimeZone-Objekt zurück, das den angegebenen Zeitzonenbezeichner repräsentiert. Bei einem ungültigen Bezeichner wird false zurückgegeben.Beispiele
Aktuelles Datum in einer bestimmten Zeitzone ausgeben
<?php
$tz = timezone_open('Europe/Berlin');
$date = date_create('now', $tz);
echo date_format($date, 'Y-m-d H:i:s T');
UTC-Offset einer Zeitzone ermitteln
<?php
$tz = timezone_open('America/New_York');
if ($tz === false) {
echo 'Ungültige Zeitzone!';
} else {
$date = date_create('now', $tz);
$offset = timezone_offset_get($tz, $date);
echo 'UTC-Offset in Sekunden: ' . $offset . PHP_EOL;
echo 'UTC-Offset in Stunden: ' . ($offset / 3600);
}
Fehlerbehandlung bei ungültigem Bezeichner
<?php
$tz = @timezone_open('Keine/Gueltige/Zone');
if ($tz === false) {
echo 'Die angegebene Zeitzone ist ungültig.';
}
// Wichtig · Fallstricke
Fallstrick: Die Funktion gibt bei ungültigem Bezeichner false zurück und erzeugt eine PHP-Warnung. Der Rückgabewert sollte daher immer mit === false geprüft werden. Um die Warnung zu unterdrücken, kann der @-Operator genutzt werden, allerdings ist dies in der Regel kein empfohlener Stil — besser ist eine vorherige Validierung via in_array($bezeichner, DateTimeZone::listIdentifiers()).
Hinweis: timezone_open() ist eine prozedurale Alias-Funktion für new DateTimeZone(). In objektorientierten Projekten sollte direkt der Konstruktor verwendet werden.