| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: 18429 -->
- <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 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.
- </para>
- <sect2 id="zend.date.theory.internals">
- <title>Internes</title>
- <itemizedlist mark='opencircle'>
- <listitem>
- <para>
- <acronym>UNIX</acronym> Zeitpunkte
- </para>
- <para>
- Alle Daten und Zeiten, selbst die mehrdeutigen (z.B. kein Jahr), sind intern
- dargestellt in absoluten Zeitpunkten, repräsentiert als
- <acronym>UNIX</acronym>-Zeitpunkt welcher die Differenz zwischen der gewünschten
- Zeit und dem 01. Januar 1970 00:00:00 <acronym>GMT</acronym> darstellt. Das ist
- nur deshalb möglich, weil <classname>Zend_Date</classname> nicht durch
- <acronym>UNIX</acronym>-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 <acronym>GMT</acronym> bis zum 19. Januar
- 2038 03:14:07 <acronym>GMT</acronym> 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, als drei
- Stunden nach dem 01. Januar 1970 00:00:00 <acronym>GMT</acronym> bzw.
- 0 + 3 * 60 * 60 = 10800 dargestellt.
- </para>
- </listitem>
- <listitem>
- <para>
- <acronym>PHP</acronym> Funktionen
- </para>
- <para>
- Wo es möglich ist, verwendet <classname>Zend_Date</classname> normalerweise
- <acronym>PHP</acronym>-Funktionen, um die Geschwindigkeit zu erhöhen.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
|