| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15851 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.date.definition.theory">
- <title>Theorie der Arbeitsweise</title>
- <para>
- Warum gibt es nur eine Klasse <classname>Zend_Date</classname> für das Arbeiten mit Daten
- und Zeiten im Zend Framework ?
- </para>
- <para>
- 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 <classname>Zend_Date</classname> 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 der selben Klasse und der selben
- Methode 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.
- </para>
- <sect2 id="zend.date.theory.internals">
- <title>Internes</title>
- <para>
- <itemizedlist mark='opencircle'>
- <listitem>
- <para>
- UNIX Zeitpunkte
- </para>
- <para>
- Alle Daten und Zeiten, selbst die mehrdeutigen (z.B. kein Jahr), sind intern
- dargestellt in absoluten Momenten der Zeit, repräsentiert als UNIX Zeitpunkt
- welcher die Differenz zwischen der gewünschten Zeit und dem 01.Jänner 1970
- 00:00:00 GMT/UTC darstellt. Das ist nur deshalb möglich weil
- <classname>Zend_Date</classname> nicht durch UNIX Zeitpunkte limitiert ist
- und auch nicht durch Integer Zahlen. Die BCMath Erweiterung wird benötigt um
- extrem große Daten ausserhalb des Bereichs vom Freitag dem 13.Dezember 1901
- 20:45:54 GMT bis zum 19.Jänner 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.
- </para>
- </listitem>
- <listitem>
- <para>
- Datumsabschnitte als Offsets in Zeitpunken
- </para>
- <para>
- Deswegen wird eine Objektinstanz welche drei Stunden repräsentiert
- ausgedrückt als drei Stunden nach dem 01.Jänner.1970 00:00:00 GMT/UTC bzw.
- 0 + 3 * 60 * 60 = 10800 dargestellt.
- </para>
- </listitem>
- <listitem>
- <para>
- PHP Funktionen
- </para>
- <para>
- Wo es möglich ist verwendet <classname>Zend_Date</classname> normalerweise
- PHP Funktionen um die Geschwindigkeit zu erhöhen.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </sect2>
- </sect1>
- <!--vim:se ts=4 sw=4 et:-->
|