| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15103 -->
- <!-- 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:-->
|