W3docs

Die PHP-Funktion timezone_version_get() verstehen

Erfahren Sie, wie timezone_version_get() in PHP die Version der IANA-Zeitzonendatenbank der intl-Erweiterung zurückgibt.

Die Funktion timezone_version_get() gibt die Version der Zeitzonendatenbank zurück, die mit der intl-Erweiterung gebündelt ist. Die Zeitzonendatenbank (auch als tz-Datenbank oder IANA tz data bekannt) ist die maßgebliche Quelle für die weltweiten Zeitzonenregeln – UTC-Offsets, Sommerzeit-Übergänge und historische Änderungen. Regierungen ändern diese Regeln regelmäßig, daher wird die Datenbank mehrmals im Jahr überarbeitet und mit einer Versionsnummer wie 2024.1 versehen.

Die Kenntnis der Version ist wichtig, weil veraltete Regeln zu falschen Zeiten führen. Wenn ein Land seinen Sommerzeitbeginn verschiebt und Ihr Server noch eine alte Datenbank verwendet, ist jede Datumsberechnung über diesen Übergang hinweg um eine Stunde falsch. Mit timezone_version_get() können Sie ablesen, welche Version PHP tatsächlich verwendet, um sie zu prüfen, zu protokollieren oder bei Veralterung eine Warnung auszugeben.

Diese Seite behandelt die Syntax, den sicheren Aufruf, das Lesen des Ergebnisses und die Beziehung zu den anderen PHP-Zeitzonenfunktionen.

Syntax

Die Funktion timezone_version_get() hat eine sehr einfache Syntax. Hier ist die Syntax:

Die Syntax der PHP-Funktion timezone_version_get()

string timezone_version_get ( void )

Verfügbar seit PHP 5.2.0.

Diese Funktion nimmt keine Argumente entgegen und gibt einen string zurück, der nur die Versionsnummer enthält, wie z. B. 2023.3 oder 2024.1. Das Format ist YYYY.N – das vierstellige Jahr des IANA-Releases gefolgt von der sequenziellen Veröffentlichung innerhalb dieses Jahres (a, b, c… bei IANA werden hier zu .1, .2, .3).

Hinweis: timezone_version_get() ist Teil der intl-Erweiterung, nicht der Kern-Datums-/Uhrzeiterweiterung. Sie gibt die gebündelte intl/ICU-Kopie der Zeitzonendaten an, die von der Version abweichen kann, die PHPs DateTime-/DateTimeZone-Klassen verwenden. Um zu prüfen, ob die intl-Erweiterung überhaupt vorhanden ist, verwenden Sie extension_loaded('intl') vor dem Aufruf.

Verwendung

Ein typischer Aufruf sieht folgendermaßen aus:

  1. Mit extension_loaded('intl') absichern, damit das Skript auf Servern ohne die Erweiterung keinen fatalen Fehler verursacht.
  2. timezone_version_get() aufrufen, um den Versions-String abzurufen.
  3. Den Wert speichern, protokollieren oder anzeigen – oder ihn mit einem erwarteten Minimalwert vergleichen.

Beispiel

Hier ist ein Codebeispiel, das zeigt, wie die Funktion timezone_version_get() in PHP-Anwendungen verwendet wird:

Beispiel der Funktion timezone_version_get() in PHP

php— editable, runs on the server

Hinweis: Diese Funktion erfordert die intl-Erweiterung. Wenn die Erweiterung nicht aktiviert ist, steht die Funktion nicht zur Verfügung. Das obige Beispiel enthält eine Prüfung, um einen fatalen Fehler zu vermeiden.

Warnung bei veralteter Datenbank

Da die Version nur ein YYYY.N-String ist, können Sie ihn mit einem vertrauenswürdigen Minimalwert vergleichen. Dies ist nützlich für einen Health-Check-Endpunkt oder einen Deployment-Guard:

<?php
$minimum = '2024.1';
$current = timezone_version_get();

if (version_compare($current, $minimum, '<')) {
    echo "Warning: timezone database $current is older than $minimum. Update the intl/ICU library.";
} else {
    echo "Timezone database $current is up to date.";
}
?>

version_compare() behandelt die punktierte Version wie eine Software-Version, sodass 2024.1 korrekt als neuer als 2023.3 verglichen wird.

Verwandte Funktionen

timezone_version_get() ist die einzige Funktion, die die Version der Datenbank meldet. Der Rest des PHP-Zeitzonenpakets arbeitet mit den Daten selbst:

Fazit

timezone_version_get() ist eine kleine, aber praktische Funktion: Sie zeigt genau an, welche IANA-Zeitzonendatenbank die intl-Erweiterung verwendet. Sichern Sie den Aufruf immer mit extension_loaded('intl') ab, und erwägen Sie, die zurückgegebene Version mit einem bekannten Minimalwert zu vergleichen, damit veraltete Zeitzonenregeln beim Deployment und nicht als falsche Zeitstempel in der Produktion auffallen.

Übung

Übung
Was ist die Funktion von timezone_version_get() in PHP?
Was ist die Funktion von timezone_version_get() in PHP?
Was this page helpful?