Signatur
Beschreibung
date_timezone_get() ist die prozedurale Entsprechung der Methode DateTime::getTimezone(). Sie extrahiert das DateTimeZone-Objekt, das einem DateTime- oder DateTimeImmutable-Objekt zugewiesen wurde, und gibt es zurück.
Die Funktion ist nützlich, wenn man im prozeduralen Stil arbeitet oder die Zeitzone eines Datumsobjekts weiterverarbeiten, vergleichen oder anderweitig verwenden möchte – etwa um den Zeitzonennamen, den UTC-Offset oder die Sommerzeit-Regeln zu ermitteln.
Wurde dem DateTime-Objekt bei der Erstellung keine explizite Zeitzone mitgegeben, wird die aktuell in PHP konfigurierte Standard-Zeitzone (siehe date_default_timezone_get()) verwendet. Diese erscheint dann ebenfalls als Rückgabewert.
Im objektorientierten Stil empfiehlt sich stattdessen die Methode $dt->getTimezone(), die identisches Verhalten zeigt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $object Pflicht | DateTimeInterface | Ein DateTime- oder DateTimeImmutable-Objekt, dessen Zeitzone abgerufen werden soll. |
Rückgabewert
DateTimeZone-Objekt zurück. Im Fehlerfall wird false zurückgegeben.Beispiele
Zeitzone eines DateTime-Objekts auslesen
<?php
$dt = date_create('2024-06-15 12:00:00', timezone_open('Europe/Berlin'));
$tz = date_timezone_get($dt);
echo $tz->getName(); // Zeitzonenname ausgeben
UTC-Offset der Zeitzone ermitteln
<?php
$dt = date_create('2024-01-10 08:00:00', timezone_open('America/New_York'));
$tz = date_timezone_get($dt);
// UTC-Offset in Sekunden, dann in Stunden umrechnen
$offsetSeconds = $tz->getOffset($dt);
$offsetHours = $offsetSeconds / 3600;
echo $tz->getName() . ' hat UTC-Offset: ' . $offsetHours . ' Stunden';
// Im Winter gilt EST (UTC-5)
Objektorientierter Vergleich (äquivalente Methode)
<?php
$dt = new DateTimeImmutable('now', new DateTimeZone('Asia/Tokyo'));
// Prozedural
$tz1 = date_timezone_get($dt);
// Objektorientiert – identisches Ergebnis
$tz2 = $dt->getTimezone();
echo $tz1->getName() . PHP_EOL; // Asia/Tokyo
echo $tz2->getName() . PHP_EOL; // Asia/Tokyo
// Wichtig · Fallstricke
Fallstrick: Wenn ein DateTime-Objekt mit einem Unix-Timestamp (z. B. @1234567890) erstellt wird, wird die Zeitzone intern auf UTC gesetzt, unabhängig von der konfigurierten Standard-Zeitzone. date_timezone_get() liefert in diesem Fall UTC zurück, selbst wenn man eine andere Zeitzone erwartet.
Der Rückgabewert false tritt in der Praxis nur bei internen Fehlern auf; eine gültige DateTimeInterface-Instanz liefert nahezu immer ein DateTimeZone-Objekt.