Zeitzonen-Informationen auswerten und beeinflussen mit PHP

PHP stellt seit der Version 5 ausgefeilte Funktionen zur Zeitzonenbestimmung und -beeinflussung bereit. Mit diesen können Sie beispielsweise lokalisierte Anwendungen bzw. Webseiten in verschiedenen Zeitzonen besser realisieren.

Eine einfache Methode, um die aktuell eingestellte Zeitzone zu ermitteln, stellt die Funktion date_default_timezone_get(…) dar. Möchten Sie diese Zeitzoneneinstellung verändern, rufen Sie die Funktion date_default_timezone_set(…) auf und übergeben Sie ihr als Parameter eine Zeitzone in der Form “Australia/Brisbane”. Wie Sie an eine Liste der möglichen Zeitzonen kommen, erfahren Sie später.

<?php

echo"Eingestellte Zeitzone: ",
    date_default_timezone_get();

$strZeitzone = "Australia/Brisbane";

date_default_timezone_set($strZeitzone);

echo"<br>Neu eingestellte Zeitzone: ",
    date_default_timezone_get();

?>

Der folgende Quellcode zeigt, wie Sie Informationen über alle Zeitzonen ausgeben lassen können. Die Funktion timezone_identifiers_list(…) gibt die Namen der verfügbaren Zeitzonen aus (z.B. “Australia/Brisbane” oder “Europe/Berlin”). Eine deutlich detailreichere Ausgabe erhalten Sie mit Hilfe der Funktion timezone_abbreviations_list(…). Deren Rückgabe-Array enthält eine Angabe zur Sommerzeit (”dst”), wobei der Wert 1 für die Benutzung der Sommerzeit in dieser Zeitzone steht und der Wert 0 für die Nichtbenutzung. Neben der Bezeichnung der Zeitzone ist außerdem der Unterschied zur GMT (Greenwich Mean Time) in Sekunden angegeben (”offset”).

<?php

// Gibt eine Liste der Namen aller Zeitzonen zurück
$arrZeitzonenNamen = timezone_identifiers_list();

// Gibt eine detaillierte Liste aller Zeitzonen zurück
$arrZeitzonenDetails = timezone_abbreviations_list();

?>

Ein Ausschnitt der Ausgabe der Funktion timezone_abbreviations_list(…):

[0] => Array
    (
        [dst] => 1
        [offset] => 7200
        [timezone_id] => Europe/Berlin
    )

Im nachstehenden Quellcode finden Sie einige weitere nützliche Funktionen. Der Funktion timezone_name_from_abbr(…) können Sie entweder die Abkürzung einer Zeitzone oder deren Unterschied zur GMT übergeben (optional auch die Benutzung der Sommerzeit). Anhand dieser Daten ermittelt die Funktion den Namen der Zeitzone. Für die Benutzung der nachfolgenden Funktionen müssen Sie zuerst ein sog. DateTimeZone-Objekt mit der Funktion timezone_open(…) erzeugen. Übergeben Sie dazu der Funktion die Abkürzung der Zeitzone. Anschließend können Sie mit der Funktion timezone_name_get(…) den Namen der Zeitzone und mit der Funktion timezone_offset_get(…) den Unterschied dieser Zeitzone zur GMT in Sekunden ermitteln. Dieser Funktion müssen Sie allerdings zwei Parameter übergeben: der erste legt über das DateTimeZone-Objekt eine Zeitzone fest, der zweite bestimmt die Zeitzone, von der der Unterschied berechnet werden soll. Abschließend ermöglicht Ihnen die Funktion timezone_transitions_get(…), Details über eine bestimmte, eingestellte Zeitzone zu ermitteln. Diese Details können sehr umfangreich sein und enthalten beispielsweise Details zu Änderungen der Sommerzeit.

<?php

// Gibt den Namen einer Zeitzone zurück
$strZeitzoneName = timezone_name_from_abbr("EST");
$strZeitzoneName = timezone_name_from_abbr("", 36000, 0);

// Erzeugt ein neues sog. DateTimeZone-Objekt
$objDateTimeZone = timezone_open("EST");

// Gibt den Namen einer Zeitzone zurück
$strZeitzoneName = timezone_name_get($objDateTimeZone);

// Gibt den Unterschied der Zeitzone zur GMT zurück
$strZeitzoneUnterschiedZuGMT =  timezone_offset_get($objDateTimeZone, date_create("now", $objDateTimeZone));

// Gibt Details zur Zeitzone zurück
$arrZeitzoneDetails = timezone_transitions_get($objDateTimeZone);

?>

Kategorie: PHP MySQL

Tags:

RSSComments (0)

Trackback URL

Kommentar schreiben




Kommentare mit Foto bitte mittels Gravatar.