W3docs

timezone_name_get()

Erfahren Sie mehr über die PHP-Funktion timezone_name_get(): Syntax, Parameter, Rückgabewerte und praxisnahe Beispiele.

Einführung

Dieser Artikel behandelt die Funktion timezone_name_get in PHP. Wir untersuchen ihre Syntax, Parameter und Rückgabewerte sowie praxisnahe Beispiele. Die Funktion liest den Bezeichner aus einem DateTimeZone-Objekt aus, was nützlich ist, wenn Sie ein Zeitzonenobjekt speichern und später seinen Namen für Logging, Anzeige oder Vergleiche benötigen.

timezone_name_get ist der prozedurale Alias der Methode DateTimeZone::getName. Beide sind austauschbar – verwenden Sie, was besser zum Stil Ihrer Codebasis passt.

Verfügbarkeit: timezone_name_get ist Teil von PHPs eingebetteter Datums-/Zeiterweiterung. Sie ist immer verfügbar – es muss keine zusätzliche Erweiterung (wie intl) installiert werden.

Syntax

Die Funktion timezone_name_get nimmt ein einzelnes DateTimeZone-Objekt entgegen und gibt den Namen der Zeitzone zurück, die es repräsentiert. Hier ist die Signatur:

Die Syntax der PHP-Funktion timezone_name_get()

timezone_name_get(DateTimeZone $object): string

Schauen wir uns die Parameter genauer an:

  • $object: Dies ist ein DateTimeZone-Objekt, das eine Zeitzone repräsentiert.

Parameter

Wie oben erwähnt, nimmt die Funktion timezone_name_get nur einen Parameter entgegen: ein DateTimeZone-Objekt. Dieses Objekt repräsentiert eine bestimmte Zeitzone und wird mit der Klasse DateTimeZone erstellt. Hier ist ein Beispiel zur Erstellung eines DateTimeZone-Objekts:

Beispiel zur Erstellung eines DateTimeZone-Objekts in PHP

<?php

$timezone = new DateTimeZone('America/New_York');

In diesem Beispiel erstellen wir ein DateTimeZone-Objekt, das die Eastern Time Zone in den USA repräsentiert.

Hinweis: In PHP 8+ wird strenge Typprüfung erzwungen. Das Übergeben eines Arguments, das kein DateTimeZone-Objekt ist, löst einen TypeError aus.

Rückgabewerte

Die Funktion timezone_name_get gibt einen String zurück, der den Namen der Zeitzone repräsentiert, die durch das übergebene DateTimeZone-Objekt dargestellt wird. Hier ist ein Beispiel zur Verwendung:

Beispiel zur Verwendung der Funktion timezone_name_get() in PHP

php— editable, runs on the server

In diesem Beispiel erstellen wir ein DateTimeZone-Objekt für die Eastern Time Zone und übergeben es an die Funktion timezone_name_get. Die Funktion gibt dann den String "America/New_York" zurück, den wir mit der echo-Anweisung ausgeben.

Die Funktion gibt immer den kanonischen Bezeichner zurück, mit dem das Objekt erstellt wurde. Wenn Sie das Objekt aus einem Offset oder einer Abkürzung erstellen, spiegelt der zurückgegebene Name dies wider:

Namen für offset- und abkürzungsbasierte Zeitzonen

<?php

echo timezone_name_get(new DateTimeZone('+05:00')), PHP_EOL; // Output: +05:00
echo timezone_name_get(new DateTimeZone('GMT')), PHP_EOL;    // Output: GMT
echo timezone_name_get(new DateTimeZone('UTC')), PHP_EOL;    // Output: UTC

Bei benannten Zeitzonen ist das Ergebnis derselbe String, den Sie an Funktionen wie date_default_timezone_set übergeben können, was ihn zu einem sicheren Round-Trip-Bezeichner macht.

Praxisnahe Beispiele

Nachdem wir die Grundlagen der Funktion timezone_name_get behandelt haben, schauen wir uns einige praxisnahe Beispiele an.

Beispiel 1: Zeitzonen in einem Dropdown-Menü anzeigen

Angenommen, wir möchten ein Formular erstellen, das es Benutzern ermöglicht, ihre Zeitzone auszuwählen. Wir können die Klasse DateTimeZone zusammen mit der Funktion timezone_name_get verwenden, um ein Dropdown-Menü mit allen verfügbaren Zeitzonen zu befüllen. Hier ist ein Beispiel:

Zeitzonen in einem Dropdown-Menü in PHP anzeigen

<select name="timezone">
  <?php foreach(DateTimeZone::listIdentifiers() as $timezone): ?>
    <option value="<?php echo $timezone; ?>">
      <?php echo $timezone; ?>
    </option>
  <?php endforeach; ?>
</select>

In diesem Beispiel verwenden wir die Methode listIdentifiers der Klasse DateTimeZone, um eine Liste aller verfügbaren Zeitzonen zu erhalten. Da listIdentifiers bereits die kanonischen Zeitzonennamen zurückgibt, können wir $timezone direkt sowohl für den Wert als auch für das Label verwenden, was den Code effizienter macht.

Beispiel 2: Ein Datum in eine andere Zeitzone konvertieren

Angenommen, wir haben ein Datum in der Pacific Time Zone und möchten es in die Eastern Time Zone umrechnen. Wir können die Klasse DateTime zusammen mit DateTimeZone und der Funktion timezone_name_get verwenden. Hier ist ein Beispiel:

Ein Datum in eine andere Zeitzone in PHP konvertieren

php— editable, runs on the server

In diesem Beispiel erstellen wir ein DateTime-Objekt, das ein Datum und eine Uhrzeit in der Pacific Time Zone repräsentiert, und verwenden dabei den Zeitzonenbezeichner America/Los_Angeles. Anschließend erstellen wir einen Klon dieses Objekts und nutzen die Methode setTimezone, um es in die Eastern Time Zone mit dem Bezeichner America/New_York umzuwandeln. Abschließend geben wir die Daten in beiden Zeitzonen mit der Methode format aus und überprüfen die aktiven Zeitzonennamen mit timezone_name_get.

Beachten Sie, dass die Eastern-Zeit 12:00:00 anzeigt, während die Pacific-Zeit 09:00:00 zeigt – genau drei Stunden Unterschied, wie erwartet.

Objektorientierte Alternative

Da timezone_name_get lediglich ein Wrapper um DateTimeZone::getName ist, können Sie die Methode direkt aufrufen:

Prozeduraler vs. objektorientierter Stil

<?php

$timezone = new DateTimeZone('Europe/Berlin');

echo timezone_name_get($timezone), PHP_EOL; // Procedural
echo $timezone->getName(), PHP_EOL;          // Object-oriented
// Both output: Europe/Berlin

Beide Formen geben denselben String zurück. Die objektorientierte Methode lässt sich gut verketten, wenn Sie bereits eine DateTimeZone-Instanz haben.

Verwandte Funktionen

  • timezone_open — erstellt ein DateTimeZone-Objekt, dessen Namen Sie später auslesen können.
  • date_timezone_get — gibt die DateTimeZone zurück, die einem DateTime-Objekt zugeordnet ist.
  • timezone_offset_get — gibt den Offset einer Zeitzone (in Sekunden) von UTC für einen bestimmten Zeitpunkt zurück.
  • timezone_identifiers_list — listet alle gültigen Zeitzonenbezeichner auf.

Eine umfassendere Übersicht finden Sie im Kapitel PHP Timezones.

Fazit

Dieser Artikel hat die Funktion timezone_name_get in PHP behandelt, einschließlich ihrer Syntax, Parameter, Rückgabewerte und praktischen Anwendungsfälle. Sie gibt den kanonischen Bezeichner zurück, der in einem DateTimeZone-Objekt gespeichert ist, ist ohne zusätzliche Erweiterungen verfügbar und entspricht der Methode DateTimeZone::getName. Wir hoffen, dass diese Einblicke Ihnen helfen, Zeitzonenkonvertierungen in Ihren Projekten zuverlässiger zu handhaben.

Übung

Übung
Was ist die Funktion der Methode `timezone_name_get` in PHP?
Was ist die Funktion der Methode `timezone_name_get` in PHP?
Was this page helpful?