23
2010
Einführung in Zend_Date
Erst einmal will ich mich bei Nico für den super Artikel ZendX_JQuery Basics bedanken, finde es Klasse von Dir, dass du uns Unterstützt!
Und jetzt zurück zum Thema ![]()
Da ich in der letzten Zeit viel mit der Zend_Date Komponente gearbeitet habe,
will ich euch heute mal die Basics der Komponente mit ein paar Beispielen vorstellen.
Die deutsche Dokumentation für die Zend_Date Komponente findet ihr wie für alle anderen Komponenten unter http://framework.zend.com/manual/de/
Bevor man datumsrelevante Funktionen verwendet, sollte man die Standard-Zeitzone definieren.
Dies kann mittels der date.timezone Einstellung in der php.ini geschehen oder wie wir es nun machen über die date_default_timezone_set() Funktion.
Standard-Zeitzone definieren:
// Zeitzone für Deutschland
date_default_timezone_set('Europe/Berlin');
Aktuelles Datum + Uhrzeit ausgeben:
$date = new Zend_Date(); echo $date; // Ausgabe z.B.: 21.06.2010 22:26:26
Aus einem vorhandenen Datum ein Zend_Date Objekt erstellen:
$date = new Zend_Date('21.06.2010');
echo $date;
// Ausgabe: 21.06.2010 00:00:00
Aktuelles Datum + Uhrzeit anhand eines Musters ausgeben:
$date = new Zend_Date();
echo $date->get('dd.MM.yyyy');
// Ausgabe z.B.: 21.06.2010
echo $date->get('yyyy-MM-dd');
// Ausgabe z.B.: 2010-06-21
echo $date->get('HH:mm:ss');
// Ausgabe z.B.: 22:31:58
Zend_Date konstanten verwenden:
Es gibt natürlich noch viel mehr Konstanten für Zend_Date, eine Übersicht findet ihr hier in der Doku.
$date = new Zend_Date(); echo $date->get(Zend_Date::DATE_FULL); // Ausgabe z.B.: Montag, 21. Juni 2010 echo $date->get(Zend_Date::DATE_LONG); // Ausgabe z.B.: 21. Juni 2010 echo $date->get(Zend_Date::DATE_MEDIUM); // Ausgabe z.B.: 21.06.2010 echo $date->get(Zend_Date::DATE_SHORT); // Ausgabe z.B.: 21.06.10 echo $date->get(Zend_Date::DATETIME_MEDIUM); // Ausgabe z.B.: 21.06.2010 22:54:26 echo $date->get(Zend_Date::DATETIME_SHORT); // Ausgabe z.B.: 21.06.10 22:54 echo $date->get(Zend_Date::WEEKDAY); // Ausgabe z.B.: Montag echo $date->get(Zend_Date::MONTH_NAME); // Ausgabe z.B.: Juni echo $date->get(Zend_Date::TIMESTAMP); // Ausgabe z.B.: 1277152620
Rechnen mit Zend_Date:
$date = new Zend_Date(); echo $date; // Ausgabe z.B.: 21.06.2010 23:09:20 // + 1 Tag echo $date->add(1, Zend_Date::DAY); // Ausgabe z.B.: 22.06.2010 23:09:20 // + 1 Monat echo $date->add(1, Zend_Date::MONTH); // Ausgabe z.B.: 21.07.2010 23:09:20 // + 1 Jahr echo $date->add(1, Zend_Date::YEAR); // Ausgabe z.B.: 21.06.2011 23:09:20 // - 1 Tag echo $date->sub(1, Zend_Date::DAY); // Ausgabe z.B.: 20.06.2010 23:09:20 // - 1 Monat echo $date->sub(1, Zend_Date::MONTH); // Ausgabe z.B.: 21.05.2010 23:09:20 // - 1 Jahr echo $date->sub(1, Zend_Date::YEAR); // Ausgabe z.B.: 21.06.2009 23:09:20
Setzen einer bestimmten Zeit:
$date = new Zend_Date();
echo $date->set('12:00', Zend_Date::TIME_SHORT);
// Ausgabe z.B.: 21.06.2010 12:00:00
Zend_Date Objekt klonen:
Warum ein Zend_Date Objekt klonen?
Wenn man $clone einfach $date zuweisen würde und anschliessend $date ändert, ändert sich auch automatisch $clone.
$date = new Zend_Date(); $clone = $date->copyPart(Zend_Date::DATE_MEDIUM); // $clone ist das geklonte Objekt von $date. Wobei nur der gewünschte Abschnitt $part ($date->copyPart($part)) des Datumsobjektes kopiert wird.
Vergleichen mit der Operation compare:
$date = new Zend_Date();
echo $date->compare('29.06.2010');
// Gibt 0 zurück wenn sie gleich sind, 1 wenn der Abschnitt dieses Objektes früher war als der 29.06.2010 und andernfalls -1.
Vergleichen von Daten:
$date = new Zend_Date('21.06.2010');
$date2 = new Zend_Date('22.06.2010');
// Prüfen ob das Datum1 gleich Datum2 ist
$date->equals($date2);
// Gibt true zurück wenn $date gleich $date2 ist, ansonsten false
// Prüfen ob das Datum1 früher Datum2 ist
$date->isEarlier($date2);
// Gibt true zurück wenn $date früher $date2 ist, ansonsten false
// Prüfen ob das Datum1 später Datum2 ist
$date->isLater($date2);
// Gibt true zurück wenn $date später $date2 ist, ansonsten false
Einzelne Daten zwischen einen Zeitraum ausgeben:
$from = new Zend_Date('29.06.2010');
$to = new Zend_Date('02.07.2010');
$dates = array();
do {
$dates[] = $from->get(Zend_Date::DATE_MEDIUM);
$from = $from->add(1, Zend_Date::DAY);
} while ($from<=$to);
// Im Array $dates würde jetzt folgendes stehen:
// Array
// (
// [0] => 29.06.2010
// [1] => 30.06.2010
// [2] => 01.07.2010
// [3] => 02.07.2010
// )
So, ich hoffe ich konnte euch die Basics von Zend_Date anhand der kleinen Beispiele
etwas nahe bringen.
Falls es Fragen gibt, schießt los
Ähnliche Artikel
4 Kommentare Kommentar schreiben
Kommentar schreiben
Letzte Kommentare
- PHP 5.4 – die Neuerungen im Überblick at PHP, SEO, Software, Programmierung bei Kurzschreibweise für Arrays ab PHP 5.4
- Jevo bei Ajax mit dem ZF und jQuery – HOW TO
- Jevo bei Ajax mit dem ZF und jQuery – HOW TO
- Jan bei Ajax mit dem ZF und jQuery – HOW TO
- Wotan bei Ubuntu Panel zurücksetzen / wiederherstellen
von








[...] http://www.dev-talk.info/einfuehrung-in-zend_date/ [...]
Hey gerne doch! Wird sicherlich auch nicht der letzte gewesen sein.
Leider hast du vergessen, auch die Locale zu setzen oder zumindest zu erwähnen, iwe die Locale da mit reinspielt. Ansonsten finde ich den Artikel wirklich gelungen.
Noch als Tipp: man kann auch zwei Zend_Date Objekte vergleichen
Hallo Dennis,
danke für den Tipp
Die Tage folgt noch ein extra Artikel über Zend_Locale