Theorie der Arbeitsweise
Warum gibt es nur eine Klasse Zend_Date für das Arbeiten mit Daten
und Zeiten im Zend Framework ?
Viele Sprachen teilen das Arbeiten mit Zeiten und Kalendern in zwei Klassen. Aber Zend
Framework strebt nach extremer Vereinfachung und die Entwickler zu zwingen, verschiedene
Objekte mit verschiedenen Methoden für Zeiten und Daten zu verwenden, ist in vielen
Situationen eine Belastung. Da die Methoden von Zend_Date das
Arbeiten mit vieldeutigen Daten unterstützen, die möglicherweise nicht alle Datumsabschnitte
beinhalten (Zeitalter, Jahr, Monat, Tag, Stunde, Minute, Sekunde, Zeitzone), können
Entwickler die Flexibilität und die einfache Handhabung derselben Klasse und derselben
Methoden geniessen, um die gleichen Änderungen durchzuführen (zum Beispiel Addieren,
Subtrahieren, Vergleichen, Verbinden von Datumsabschnitten und vieles mehr). Das Aufteilen
der Handhabung dieser Datumsabschnitte in verschiedene Klassen würde Komplikationen
hervorrufen, wenn einfaches gemeinsames Arbeiten und eine kleine Lernkurve gewünscht sind.
Eine einzige Klasse reduziert die Verdopplung von Code für gleichartige Arbeiten, ohne die
Notwendigkeit einer komplexen Ableitungshirarchie.
Internes
-
UNIX Zeitpunkte
Alle Daten und Zeiten, selbst die mehrdeutigen (z.B. kein Jahr), sind intern
dargestellt in absoluten Zeitpunkten, repräsentiert als
UNIX-Zeitpunkt welcher die Differenz zwischen der gewünschten
Zeit und dem 01. Januar 1970 00:00:00 GMT darstellt. Das ist
nur deshalb möglich, weil Zend_Date nicht durch
UNIX-Zeitpunkte oder Integer-Zahlen limitert ist. Die BCMath
Erweiterung wird benötigt, um extrem große Daten außerhalb des Bereichs vom
Freitag dem 13.Dezember 1901 20:45:54 GMT bis zum 19. Januar
2038 03:14:07 GMT zu unterstützen. Zusätzlich können kleine
Mathematikfehler aufgrund der inhärenten Beschränkungen des Float-Datentyps
sowie durch Rundung auftreten, es sei denn, die BCMath Extension wird verwendet.
-
Datumsabschnitte als Offsets in Zeitpunken
Deswegen wird eine Objektinstanz, welche drei Stunden repräsentiert, als drei
Stunden nach dem 01. Januar 1970 00:00:00 GMT bzw.
0 + 3 * 60 * 60 = 10800 dargestellt.
-
PHP Funktionen
Wo es möglich ist, verwendet Zend_Date normalerweise
PHP-Funktionen, um die Geschwindigkeit zu erhöhen.
|
|