Start · Sprachen · PHP · Referenz · timezone_name_get

timezone_name_get

Funktion

Gibt den Namen einer <code>DateTimeZone</code>-Instanz als Zeichenkette zurück, z. B. <code>"Europe/Berlin"</code> oder <code>"UTC"</code>.

seit PHP 5.1.0 Kategorie: date

Signatur

timezone_name_get(DateTimeZone $object): string

Beschreibung

timezone_name_get() ist eine prozedurale Alias-Funktion für die Methode DateTimeZone::getName(). Sie nimmt ein DateTimeZone-Objekt entgegen und liefert dessen internen Zeitzonennamen als Zeichenkette zurück. Dieser Name entspricht einem der Einträge aus der IANA-Zeitzonendatenbank (z. B. "America/New_York") oder einem UTC-Offset-Bezeichner wie "+05:30".

Die Funktion ist besonders nützlich, wenn man eine DateTimeZone-Instanz vorliegen hat und deren Namen für Ausgaben, Vergleiche oder die Speicherung in einer Datenbank benötigt. Häufig wird sie in Kombination mit date_timezone_get() eingesetzt, um aus einem DateTime-Objekt den Zeitzonennamen zu extrahieren.

Da es sich um einen prozeduralen Alias handelt, ist die objektorientierte Schreibweise $tz->getName() funktional identisch. In modernem PHP-Code (ab PHP 5.2+) wird bevorzugt der OOP-Stil verwendet, die prozedurale Variante bleibt jedoch vollständig unterstützt.

Parameter

Name Typ Default Beschreibung
$object Pflicht DateTimeZone Das DateTimeZone-Objekt, dessen Zeitzonenname abgefragt werden soll.

Rückgabewert

Typ
string
Beschreibung
Gibt den Namen der Zeitzone als Zeichenkette zurück, z. B. "Europe/Berlin", "UTC" oder "+05:30". Die Funktion gibt immer einen String zurück, da ein gültiges DateTimeZone-Objekt stets einen Namen besitzt.

Beispiele

Zeitzonennamen aus einem DateTimeZone-Objekt auslesen

<?php
$tz = new DateTimeZone('Europe/Berlin');
$name = timezone_name_get($tz);
echo $name; // Europe/Berlin
Europe/Berlin

Zeitzonennamen aus einem DateTime-Objekt extrahieren

<?php
$dt = new DateTime('now', new DateTimeZone('America/New_York'));
$tz = date_timezone_get($dt);
$name = timezone_name_get($tz);
echo 'Aktuelle Zeitzone: ' . $name;
Aktuelle Zeitzone: America/New_York

Vergleich von Zeitzonen anhand ihres Namens

<?php
$tz1 = new DateTimeZone('Europe/London');
$tz2 = new DateTimeZone('UTC');

if (timezone_name_get($tz1) === timezone_name_get($tz2)) {
    echo 'Gleiche Zeitzone';
} else {
    echo 'Unterschiedliche Zeitzonen: '
        . timezone_name_get($tz1) . ' vs. ' . timezone_name_get($tz2);
}
Unterschiedliche Zeitzonen: Europe/London vs. UTC

// Wichtig · Fallstricke

Hinweis zur OOP-Äquivalenz: timezone_name_get($tz) ist identisch mit $tz->getName(). In neuem Code empfiehlt sich der objektorientierte Stil für bessere Lesbarkeit.

UTC-Offset-Bezeichner: Wird ein DateTimeZone-Objekt mit einem Offset wie "+05:30" erstellt, gibt timezone_name_get() genau diesen Offset-String zurück, nicht etwa einen IANA-Zeitzonennamen. Offsets sind keine echten Zeitzonen, da sie keine Sommerzeit-Regeln berücksichtigen.