timezone_name_from_abbr()
In diesem Artikel erfahren Sie alles über die PHP-Funktion timezone_name_from_abbr(): Syntax, Parameter und Rückgabewert.
Einführung
In diesem Artikel behandeln wir die Syntax, die Parameter und den Rückgabewert der PHP-Funktion timezone_name_from_abbr() sowie praktische Anwendungsbeispiele.
Die PHP-Funktion timezone_name_from_abbr() verstehen
Die Funktion timezone_name_from_abbr() in PHP gibt den vollständigen IANA-Zeitzonennamen (z. B. America/New_York) zurück, der zu einer bestimmten Abkürzung (z. B. EST) passt. Bei Erfolg gibt sie den Zeitzonennamen zurück, bei Misserfolg false.
Dies ist die Umkehrung der Suche nach einer Abkürzung für eine bekannte Zone. Ein häufiger Anwendungsfall ist das Parsen eines Datums-Strings, bei dem nur die Abkürzung verfügbar ist (z. B. eine Log-Zeile mit EST), und Sie einen kanonischen Zonenbezeichner benötigen, um ein DateTimeZone-Objekt zu erstellen.
Hinweis: Diese Funktion ist bekanntermaßen unzuverlässig, da viele Zeitzonenabkürzungen mehrdeutig oder nicht standardisiert sind — EST, IST und CST beziehen sich jeweils auf mehrere Regionen auf der ganzen Welt. Das PHP-Handbuch empfiehlt, DateTimeZone für Produktionsanwendungen zu verwenden. Geben Sie bei der Verwendung von timezone_name_from_abbr() stets den Parameter $gmtOffset an, damit PHP zwischen Zonen mit gleicher Abkürzung unterscheiden kann.
Syntax
Die Syntax der Funktion timezone_name_from_abbr() lautet wie folgt:
Die Syntax der PHP-Funktion timezone_name_from_abbr()
<?php
string|false timezone_name_from_abbr(string $abbr, int $gmtOffset = -1, int $isdst = -1)Parameter
Die Funktion akzeptiert drei Parameter:
$abbr- Der abgekürzte Name der Zeitzone (z. B.ESToderCEST). Groß- und Kleinschreibung wird nicht berücksichtigt.$gmtOffset- Der GMT-Offset der Zeitzone in Sekunden (nicht in Stunden). Dieser Parameter ist optional, wird jedoch dringend empfohlen. Wird er nicht angegeben (-1), rät PHP anhand von$abbrallein, was aufgrund mehrdeutiger Abkürzungenfalseoder eine falsche Zeitzone zurückgeben kann.$isdst- Ein Flag, das angibt, ob die Sommerzeit gilt:1für Sommerzeit,0für Normalzeit,-1(Standard) zum Ignorieren. Wenn gesetzt, werden nur Zonen berücksichtigt, die diesem DST-Status entsprechen.
Eine praktische Methode zur Berechnung des Offsets in Sekunden: Stunden × 3600 — z. B. ist UTC−5 -5 * 3600 = -18000.
Rückgabewert
Die Funktion timezone_name_from_abbr() gibt bei Erfolg den Zeitzonennamen (einen String wie America/New_York) zurück oder false bei Misserfolg, wenn keine Zone mit der angegebenen Abkürzung und dem angegebenen Offset übereinstimmt.
Beispiele
Schauen wir uns einige praktische Beispiele an, wie die Funktion timezone_name_from_abbr() in PHP verwendet werden kann.
Beispiel zur Verwendung der Funktion timezone_name_from_abbr() in PHP
In den obigen Beispielen übergeben wir die abgekürzten Zeitzonennamen EST und PST zusammen mit ihren jeweiligen GMT-Offsets in Sekunden. Die Funktion gibt die entsprechenden vollständigen Zeitzonennamen America/New_York und America/Los_Angeles zurück. Prüfen Sie immer auf false, um Fälle zu behandeln, in denen die Abkürzung nicht erkannt wird.
Das Ergebnis kann dann direkt an ein DateTimeZone-Objekt übergeben werden, um echte Datumsberechnungen durchzuführen:
<?php
$name = timezone_name_from_abbr('CET', 3600); // "Europe/Berlin"
$date = new DateTime('2024-01-15 12:00', new DateTimeZone($name));
echo $date->format('Y-m-d H:i T'); // outputs "2024-01-15 12:00 CET"Verwandte Funktionen
timezone_abbreviations_list()- listet alle Abkürzungen auf, die PHP kennt, mit Offsets und Zonennamen.timezone_identifiers_list()- gibt alle gültigen IANA-Zeitzonenbezeichner zurück.date_default_timezone_set()- legt die Standard-Zeitzone für alle Datums-/Zeitfunktionen fest.
Fazit
Wir haben die Syntax und Verwendung der PHP-Funktion timezone_name_from_abbr() behandelt. Diese Funktion kann abgekürzte Zeitzonennamen in ihre vollständigen Bezeichner umwandeln. Da Abkürzungen jedoch mehrdeutig sind, sollten Sie stets $gmtOffset angeben und für robuste Anwendungen DateTimeZone bevorzugen. Wir hoffen, dass dieser Artikel hilfreich war.