Der folgende Abschnitt zeigt die grundsätzliche Benutzung von
Zend_Date
hauptsächlich durch Beispiele. Für dieses Handbuch sind
"Daten" immer implizit Kalenderdaten mit Zeiten, selbst wenn es nicht extra erwähnt ist und
umgekehrt. Der nicht angegebene Teil wird intern standardmäßig mit "null" angenommen. Das
bedeutet, dass ein Datum, welches kein Kalenderdatum aber eine Zeit von 12 Stunden hat und ein
anderes Datum, welches aus einem Kalenderdatum aber ohne Uhrzeit besteht zusammen zu einem
Datum führen, welches das Kalenderdatum enthält mit einer Uhrzeit von "Mittags".
Das Setzen eines Datums ohne Zeit bedeutet, dass die Zeit auf 00:00:00 gesetzt wird. Genauso bedeutet das Setzen einer Zeit ohne Datum, dass intern das Datum auf 01.01.1970 inklusive der Anzahl an Sekunden welche der vergangenen Stunden, Minuten und Sekunden der angegebenen Zeit entsprechen, gesetzt wird . Normalerweise messen Personen Dinge von einem Startpunkt aus, wie das Jahr 0 A.D. Trotzdem verwenden die meisten Softwaresysteme die erste Sekunde des Jahres 1970 als Startpunkt und bezeichnen Zeiten als Abstand zum Zeitpunkt durch Zählen der Anzahl an Sekunden, die seit diesem dem Startpunkt vergangen sind.
Ohne jegliche Argumente bedeutet die Erstellung einer Instanz, dass ein Objekt mit dem
aktuellen Gebietsschema und dem aktuellen lokalen Datum zurückgegeben wird, durch
Verwendung von PHP's time()
Funktion um den
aktuellen UNIX Zeitpunkt für
das Objekt zu erhalten. Man muß sicherstellen, dass die PHP Umgebung
die richtige Standardzeitzone
gesetzt hat.
Beispiel 157. Erstellen des aktuellen Datums
$date = new Zend_Date(); // Ausgabe des aktuellen Zeitpunktes print $date;
Das Durchschauen der Basismethoden von Zend_Date
ist ein guter
Weg für den Start für jene, welche noch nie mit Datumsobjekten in anderen Sprachen oder
Frameworks gearbeitet haben. Für jede anbei angeführte Methode gibt es ein kleines
Beispiel.
Ein Datum in einem Zend_Date
Objekt kann als Integer oder
lokalisierte Zeichenkette ausgegeben werden, indem man die
get()
Methode verwendet. Es gibt viele Optionen, welche
in einem späteren Abschnitt beschrieben werden.
Beispiel 158. get() - Ausgabe eines Datums
$date = new Zend_Date(); // Ausgabe des gewünschten Datums print $date->get();
Die set()
Methode verändert das Datum, welches im Objekt
gespeichert ist und gibt das endgültige Datum als Zeitpunkt (nicht als Objekt)
zurück. Auch hier gibt es viele Optionen, die in einem späteren Abschnitt beschrieben
werden.
Beispiel 159. set() - Setzen eines Datums
$date = new Zend_Date(); // Setzen einer neuen Zeit $date->set('13:00:00',Zend_Date::TIMES); print $date->get(Zend_Date::W3C);
Das Addieren von zwei Daten mit add()
bedeutet
normalerweise das Addieren eines echtes Datums mit einem speziellen Zeitpunkt, der
einen Datumsabschnitt repräsentiert, wie z.B. 12 Stunden, wie im nachfolgenden
Beispiel gezeigt. Beide, add()
und
sub()
verwenden die gleichen Optionen wie
set()
, welche später erklärt werden.
Beispiel 160. add() - Addieren von Daten
$date = new Zend_Date(); // $date verändern durch addieren von 12 Stunden $date->add('12:00:00', Zend_Date::TIMES); echo "Datum über get() = ", $date->get(Zend_Date::W3C), "\n"; // benutze die magische __toString() Methode um // Zend_Date's toString() aufzurufen echo "Datum über toString() = ", $date, "\n";
Alle Basismethoden von Zend_Date
können mit kompletten
Daten, welche in einem Objekt enthalten sind, arbeiten oder mit Datumsabschnitten,
wie dem Vergleich eines Minutenwertes in einem Datum mit einem absoluten Wert. Zum
Beispiel können die aktuellen Minuten der aktuellen Zeit mit einer speziellen Zahl
von Minuten verglichen werden durch Verwendung von
compare()
wie im nachfolgenden Beispiel beschrieben.
Beispiel 161. compare() - Vergleichen von Daten
$date = new Zend_Date(); // Vergleichen von beiden Zeiten if ($date->compare(10, Zend_Date::MINUTE) == -1) { print "Diese Stunde ist weniger als 10 Minuten alt"; } else { print "Diese Stunde ist mehr als 10 Minuten alt"; }
Für einen einfachen Vergleich der Gleichheit kann equals()
verwendet werden, welches ein Boolean zurückgibt.
Beispiel 162. equals() - Identifizieren eines Datums oder Datumsabschnittes
$date = new Zend_Date(); // Vergleichen von zwei Zeiten if ($date->equals(10, Zend_Date::HOUR)) { print "Es ist 10Uhr. Zeit für die Arbeit."; } else { print "Es ist noch nicht 10Uhr. Du kannst weiterschlafen."; }