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 visa-versa. Der nicht angegebene Teil wird intern standardmäßig
mit "null" angenommen. Das bedeutet das 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 das die Zeit auf 00:00:00 gesetzt wird. Genauso bedeutet das Setzen einer Zeit ohne Datum das Intern das Datum auf 01.01.1970 gesetzt wird inklusive der Anzahl an Sekunden welche der vergangenen Stunden, Minuten und Sekunden der angegebenen Zeit entsprechen. 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 das 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 das die PHP Umgebung die richtige
Standardzeitzone gesetzt hat.
Das Durchschauen der Basismethoden von Zend_Date
ist ein guter Weg für den Start für
jene welche noch nie mit Datums Objekten 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 einer späteren Sektion beschrieben werden.
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
einer späteren Sektion beschrieben werden.
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 8.5. add() - Addieren von Daten
<?php require_once 'Zend/Date.php'; $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 Basis Methoden 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 8.6. compare() - Vergleichen von Daten
<?php require_once 'Zend/Date.php'; $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 8.7. equals() - Identifizieren eines Datums oder Datumsabschnittes
<?php require_once 'Zend/Date.php'; $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."; } ?>