W3docs

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. EST oder CEST). 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 $abbr allein, was aufgrund mehrdeutiger Abkürzungen false oder eine falsche Zeitzone zurückgeben kann.
  • $isdst - Ein Flag, das angibt, ob die Sommerzeit gilt: 1 für Sommerzeit, 0 fü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

php— editable, runs on the server

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

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.

Übungen

Übung
Was gibt die Funktion timezone_name_from_abbr() in PHP zurück?
Was gibt die Funktion timezone_name_from_abbr() in PHP zurück?
Was this page helpful?