Inhaltsverzeichnis
Die Zend_Date
Komponente bietet eine umfangreiche aber einfache API zur Manipulation
von Datum und Zeit. Die Methoden verarbeiten eine große Auswahl von Datentypen in vielen
Kombinationen und erweitern die vorhandenen PHP Datumsfunktionen um eine Vielzahl von Möglichkeiten.
Die aktuellste Version der Dokumentation finden Sie unter in unserer
Online Dokumentation
( regelmäßig mit SVN syncronisiert ).
Auch wenn Einfachheit das höchste Ziel bleibt, ist die Arbeit beim Umgang mit lokalisierten
Datums- und Zeitangaben unweigerlich mit einer gewissen Komplexität verbunden. Daten als auch
Zeitangaben werden in verschiedenen Datums- und Zeitzonen oft unterschiedlich dargestellt.
Beispielsweise stellen manche die Monatsangabe voran, während andere das Jahr an erste Stelle
schreiben um ein Kalenderdatum darzustellen.
Für mehr Informationen über die Handhabung von Lokalisierung und Normalisierung lesen Sie bitte
im Abschnitt Zend_Locale
nach.
Zend_Date
unterstützt auch abgekürzte Monatsnamen in vielen Sprachen.
Zend_Locale
erleichert die Normalisierung von lokalisierten Monatsnamen
und Wochentagen zu Zeitpunkten die umgekehrt auch wieder lokalisiert für andere Regionen
übersetzt werden können.
Bevor Sie beliebige datumsrelevante Funktionen in PHP oder dem Zend Framework verwenden,
sollten Sie sicherstellen, dass die Standard-Zeitzone in Ihrer Anwendung korrekt definiert ist.
Das kann wahlweise mit dem Definieren einer TZ Umgebungsvariablen, der date.timezone
Einstellung in der php.ini oder durch die Funktion
date_default_timezone_set()
erledigt werden.
Durch das Setzen einer Standard-Zeitzone können in PHP können alle datums- und zeitabhängigen
Funktionen für einen bestimmten Benutzer angepasst werden. Eine vollständige Auflistung
der Zeitzoneneinstellungen finden Sie in der
CLDR Timezone Identifier List
( Englisch ).
Beispiel 8.1. Definieren einer Standard-Zeitzone
<?php date_default_timezone_set('America/Los_Angeles'); // Zeitzone für die USA, Kalifornien date_default_timezone_set('Europe/Berlin'); // Zeitzone für Deutschland ?>
Wenn eine Zend_Date
Instanz erzeugt wird, wird die
Zeitzone des aktuellen Benutzers automatisch als aktuelle Standardzeitzone übernommen.
Das erspart das explizite setzen der Sommer-/Winterzeitumstellung (DST).
Zend_Date
erweitert die Möglichkeiten der PHP Datumsfunktionen um folgende Features:
Einfache API
Zend_Date
bietet eine sehr einfache API, die das die besten Datums- und Zeitfunktionalitäten aus vier Programmiersprachen vereint.
Beispielsweise ist es möglich, in nur einer Zeile zwei Zeiten miteinander zu vergleichen oder zu addieren.
Vollständig Internationalisiert
Alle vollen und abgekürzten Monatsnamen und Wochentage aus mehr als 130 Sprachen werden unterstützt. Die Methoden ermöglichen die Ein- und Ausgabe von Daten im Format der jeweiligen Lokalen.
Unlimitierte Zeitstempel
Obwohl die PHP 5.2 Dokumentation erklärt: "Die gültige Spanne eines Zeitstempels geht von Fr, 13. Dez 1901
20:45:54 GMT bis Di, 19. Jan 2038 03:14:07 GMT", ermöglicht Zend_Date
mit Unterstützung der BCMath
Erweiterung eine fast unbegrenzte Zeitspanne. Wenn BCMath nicht verfügbar ist, bietet Zend_Date
eine Spanne innerhalb des float
-Datentyps auf Ihrem Server.
"Die Größe von float ist Plattformabhängig, allerdings ist das Maximum von ~1.8e308 mit einer Genauigkeit von
ca. 14 Dezimalstellen ein Standardwert. (das 64 bit IEEE Format)." [http://www.php.net/float]
Unterstützung der ISO_8601 Datumsspezifikation
Die ISO_8601 Datumsspezifikationen werden unterstützt. Sogar teilkonforme ISO_8601 Datumsspezifikationen werden erkannt.
Diese Zeitformate sind vor allem bei der Arbeit mit Datenbanken sinnvoll.
Selbst wenn zum Beispiel MsSQL und MySQL
leicht unterschiedlich mit Datum und Zeit umgehen, werden beide von Zend_Date
unterstützt,
wenn die Zend_Date::ISO_8601 Format Konstante verwendet wird.
Wenn Datumszeichen mit den PHP date() Formaten "Y/m/d" oder "Y-m-d H:i:s" übereinstimmen,
verwenden Sie bitte die in Zend_Date
eingebaute Unterstützung für ISO 8601 formatierte Daten.
Sonnenauf- und Untergang errechnen
Sie können Sonnenauf-und Untergang für jeden beliebigen Ort und Tag anzeigen, so dass Sie keine einzige Sekunde Tageslicht für Ihr Lieblings-PHP Projekt verpassen :) ( Ich dachte immer Freaks arbeiten ohne Tageslicht )