Zum Inhalt springen

timezone_name_get()

Einführung

Dieser Artikel behandelt die Funktion timezone_name_get in PHP. Wir werden ihre Syntax, Parameter und Rückgabewerte sowie praxisnahe Beispiele erkunden. Diese Funktion ist für Entwickler, die mit Zeitzonen und Daten arbeiten, unerlässlich, und ihre Beherrschung kann die Genauigkeit Ihres Codes erheblich verbessern.

Hinweis: Die Funktion timezone_name_get ist Teil der Erweiterung intl. Stellen Sie sicher, dass sie in Ihrer PHP-Umgebung installiert und aktiviert ist, da andernfalls ein schwerwiegender Fehler auftritt.

Syntax

Die Funktion timezone_name_get hat eine einfache Syntax. Sie nimmt ein DateTimeZone-Objekt entgegen und gibt den Namen der von ihm dargestellten Zeitzone zurück. Hier ist die grundlegende Syntax:

Die Syntax der PHP-Funktion timezone_name_get()

php
<?php

string timezone_name_get ( DateTimeZone $object )

Lassen Sie uns die Parameter im Detail betrachten:

  • $object: Dies ist ein DateTimeZone-Objekt, das eine Zeitzone darstellt.

Parameter

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

Beispiel zum Erstellen eines DateTimeZone-Objekts in PHP

php
<?php

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

In diesem Beispiel erstellen wir ein DateTimeZone-Objekt, das die Eastern Time Zone (Ostküste) in den Vereinigten Staaten darstellt.

Hinweis: Ab PHP 8 wird eine 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 darstellt, die durch das als Parameter übergebene DateTimeZone-Objekt repräsentiert wird. Hier ist ein Beispiel für die Verwendung:

Beispiel zur Verwendung der Funktion timezone_name_get() in PHP

php
<?php

$timezone = new DateTimeZone('America/New_York');
echo timezone_name_get($timezone); // Output: America/New_York

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

Praxisbeispiele

Nachdem wir die Grundlagen der Funktion timezone_name_get behandelt haben, werfen wir nun einen Blick auf einige praxisnahe Beispiele für deren Verwendung.

Beispiel 1: Anzeigen von Zeitzonen in einem Dropdown-Menü

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

Anzeigen von Zeitzonen in einem Dropdown-Menü in PHP

php
<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 abzurufen. Da listIdentifiers bereits die kanonischen Zeitzonennamen zurückgibt, können wir $timezone direkt sowohl für den Wert als auch für die Beschriftung verwenden, was den Code effizienter macht.

Beispiel 2: Konvertieren eines Datums in eine andere Zeitzone

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

Konvertieren eines Datums in eine andere Zeitzone in PHP

php
<?php

$pacificTime = new DateTime('2022-03-01 09:00:00', new DateTimeZone('America/Los_Angeles'));
$easternTime = clone $pacificTime;
$easternTime->setTimezone(new DateTimeZone('America/New_York'));

echo 'Pacific Time: ' . $pacificTime->format('Y-m-d H:i:s') . ' (' . timezone_name_get($pacificTime->getTimezone()) . ')' . PHP_EOL;
echo 'Eastern Time: ' . $easternTime->format('Y-m-d H:i:s') . ' (' . timezone_name_get($easternTime->getTimezone()) . ')';

In diesem Beispiel erstellen wir ein DateTime-Objekt, das ein Datum und eine Uhrzeit in der Pacific Time Zone darstellt, unter Verwendung des Zeitzone-Identifikators America/Los_Angeles. Anschließend erstellen wir eine Kopie dieses Objekts und verwenden die Methode setTimezone, um es in die Eastern Time Zone zu konvertieren, unter Verwendung des Identifikators America/New_York. Abschließend geben wir die Daten in beiden Zeitzonen mit der format-Methode aus und überprüfen die aktiven Zeitzonennamen mit timezone_name_get.

Fazit

Dieser Artikel hat die Funktion timezone_name_get in PHP behandelt, einschließlich ihrer Syntax, Parameter, Rückgabewerte und praktischen Anwendungsfälle. Wir hoffen, dass diese Erkenntnisse Ihnen helfen, Zeitzonenkonvertierungen in Ihren Projekten zuverlässiger durchzuführen.

Praxis

Welche Funktion hat die Methode `timezone_name_get` in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.