Erstellen von Datumswerten
Zend_Date unterstützt viele verschiedene Wege um eine neue Instanz
von sich selbst zu erstellen. Da es verschiedene Notwendigkeiten gibt, werden die bequemsten
Wege in diesem Kapitel gezeigt.
Erstellen des aktuellen Datums
Der einfachste Weg der Erstellung eines Datumsobjektes ist es ein aktuelles Datum zu
erstellen. Man kann entweder eine neue Instanz mit new Zend_Date()
erstellen, oder die bequemere statische Methode Zend_Date::now()
verwenden wobei beide das aktuelle Datum als neue Instanz von
Zend_Date zurückgeben. Das aktuelle Datum enthält immer das
aktuelle Datum und die Zeit für die aktuell gesetzte Zeitzone.
Datum durch Instanz erstellen
Datumserstellung durch Erzeugen einer neuen Instanz bedeutet das man keinen
Parameter angeben muß. Natürlich gibt es mehrere Parameter die später beschrieben
werden aber normalerweise ist das der einfachste und meist genutzte Weg um das
aktuelle Datum als Zend_Date Instanz zu erhalten.
Statische Erstellung eines Datums
Machmal ist es einfacher eine statische Methode für die Erstellung eines Datums zu
verwenden. Hierfür kann die now() Methode
verwendet werden. Sie gibt eine neue Instanz von Zend_Date
auf die gleiche Art und Weise zurück wie wenn man new Zend_Date()
Verwenden würde. Es wird aber immer das aktuelle Datum zurückgegeben und das kann
auch nur durch die Angabe von optionalen Parametern geändert werden.
Erstellen von Datumswerten von einer Datenbank
Datenbanken werden oft verwendet um Datumswerte zu speichern. Aber das Problem ist, das
jede Datenbank Ihre Datumswerte in einem anderen Weg ausgibt. MsSQL
Datenbanken verwenden eine etwas andere Standardausgabe von Datumswerten als
MySQL Datenbanken. Aber zur Vereinfachung macht es
Zend_Date sehr simpel ein Datum von einem Datumswert einer
Datenbank zu erstellen.
Natürlich kann jeder Datenbank gesagt werden das Sie die Ausgabe einer definierten
Spalte in einen speziellen Wert konvertiert. Zum Beispiel können ein
datetime Wert so konvertiert werden das ein Minutenwert ausgegeben wird.
Aber das benötigt viel Zeit und oft müssen Datumswerte auf eine andere Art und Weise
bearbeitet werden als bei der Erstellung der Datenbankabfrage gedacht wurde.
Deswegen gibt es einen schnellen und einen bequemen Weg ein Datum von Datenbankwerten zu
erstellen.
Schnelle Erstellung eines Datums von Datumswerten einer Datenbank
Von allen Datenbanken ist bekannt das Sie Abfragen so schnell wie möglich
bearbeiten. Sie wurden erstellt um schnell zu arbeiten und zu antworten. Der
Schnellste Weg um Datumswerte zu bearbeiten ist es aus der Datenbank Unit Timestamps
zu erhalten. Alle Datenbanken speichern Datumswerte intern als Timestamps (nicht
Unix Timestamps). Das bedeutet das die Zeit für die Erstellung eines Timestamps
durch eine Abfrage viel kleiner ist als die Konvertierung in ein spezielles Format.
Bequeme Erstellung eines Datums von Datumswerten einer Datenbank
Die Standardausgabe von allen Datenbanken ist leicht unterschiedlich selbst wenn
diese auf den ersten Blick gleich ausschauen. Aber alle sind Teil des
ISO Standards und durch Ihn beschrieben. Deshalb liegt der einfachste
Weg ein Datum zu erstellen in der Verwendung von
Zend_Date::ISO_8601. Datenbanken von denen bekannt ist das
Sie durch Zend_Date::ISO_8601 erkannt werden sind zum
Beispiel MySQL und MsSQL. Aber alle Datenbanken können
eine ISO 8601 Repräsentation von Datumsspalten ausgeben.
ISO 8601 hat den großen Vorteil das es menschlich lesbar ist. Der
Nachteil ist das ISO 8601 mehr Zeit zur Berechnung benötigt als ein
einfacher Unix Timestamp. Es soll auch erwähnt werden das Unix Timestamps nur für
Datumswerte nach dem 1 Jänner 1970 unterstützt werden.
Erstellung eines Datums von einem Array
Datumswerte können auch durch die Verwendung eines Arrays erstellt werden. Das ist ein
einfacher und leichter Weg. Die verwendeten Array Schlüssel sind:
day: Tag des Datums als Zahl
month: Monat des Datums als Zahl
year: Vollständiges Jahr des Datums
hour: Stunde des Datums
minute: Minute des Datums
second: Sekunde des Datums
Erstellen eines Datums durch ein Array
Normalerweise wird ein komplettes Datumsarray für die Erstellung einer neuen Instanz
des Datums angegeben werden. Aber wenn nicht alle Werte angegeben werden, werden die
nicht angegebenen Arraywerte genullt. Das bedeutet das wenn z.B. keine Stunde
angegeben wird, die Stunde 0 verwendet wird.
2006,
'month' => 4,
'day' => 18,
'hour' => 12,
'minute' => 3,
'second' => 10);
$date = new Zend_Date($datearray);
]]>
2006, 'month' => 4, 'day' => 18);
$date = new Zend_Date($datearray);
]]>