Programmer's Reference Guide
| Zend_Date API Übersicht |
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.
Beispiel #1 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.
<?php
require_once 'Zend/Date.php';
$date = new Zend_Date();
Beispiel #2 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.
<?php
require_once 'Zend/Date.php';
$date = Zend_Date::now();
Erstellen von Datumswerden 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.
Beispiel #3 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.
<?php
// SELECT UNIX_TIMESTAMP(my_datetime_column) FROM my_table
require_once 'Zend/Date.php';
$date = new Zend_Date($unixtimestamp, Zend_Date::TIMESTAMP);
Beispiel #4 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. 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.
<?php
// SELECT datecolumn FROM my_table
require_once 'Zend/Date.php';
$date = new Zend_Date($datecolumn, Zend_Date::ISO_8601);
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 Werte 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
Beispiel #5 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.
<?php
require_once 'Zend/Date.php';
$datearray = array('year' => 2006, 'month' => 4, 'day' => 18, 'hour' => 12, 'minute' => 3, 'second' => 10);
$date = new Zend_Date($datearray);
<?php
require_once 'Zend/Date.php';
$datearray = array('year' => 2006, 'month' => 4, 'day' => 18);
$date = new Zend_Date($datearray);
| Zend_Date API Übersicht |
