2
0

Zend_Date-Theory.xml 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: 18429 -->
  4. <sect1 id="zend.date.definition.theory">
  5. <title>Theorie der Arbeitsweise</title>
  6. <para>
  7. Warum gibt es nur eine Klasse <classname>Zend_Date</classname> für das Arbeiten mit Daten
  8. und Zeiten im Zend Framework ?
  9. </para>
  10. <para>
  11. Viele Sprachen teilen das Arbeiten mit Zeiten und Kalendern in zwei Klassen. Aber Zend
  12. Framework strebt nach extremer Vereinfachung und die Entwickler zu zwingen, verschiedene
  13. Objekte mit verschiedenen Methoden für Zeiten und Daten zu verwenden, ist in vielen
  14. Situationen eine Belastung. Da die Methoden von <classname>Zend_Date</classname> das
  15. Arbeiten mit vieldeutigen Daten unterstützen, die möglicherweise nicht alle Datumsabschnitte
  16. beinhalten (Zeitalter, Jahr, Monat, Tag, Stunde, Minute, Sekunde, Zeitzone), können
  17. Entwickler die Flexibilität und die einfache Handhabung derselben Klasse und derselben
  18. Methoden geniessen, um die gleichen Änderungen durchzuführen (zum Beispiel Addieren,
  19. Subtrahieren, Vergleichen, Verbinden von Datumsabschnitten und vieles mehr). Das Aufteilen
  20. der Handhabung dieser Datumsabschnitte in verschiedene Klassen würde Komplikationen
  21. hervorrufen, wenn einfaches gemeinsames Arbeiten und eine kleine Lernkurve gewünscht sind.
  22. Eine einzige Klasse reduziert die Verdopplung von Code für gleichartige Arbeiten, ohne die
  23. Notwendigkeit einer komplexen Ableitungshirarchie.
  24. </para>
  25. <sect2 id="zend.date.theory.internals">
  26. <title>Internes</title>
  27. <itemizedlist mark='opencircle'>
  28. <listitem>
  29. <para>
  30. <acronym>UNIX</acronym> Zeitpunkte
  31. </para>
  32. <para>
  33. Alle Daten und Zeiten, selbst die mehrdeutigen (z.B. kein Jahr), sind intern
  34. dargestellt in absoluten Zeitpunkten, repräsentiert als
  35. <acronym>UNIX</acronym>-Zeitpunkt welcher die Differenz zwischen der gewünschten
  36. Zeit und dem 01. Januar 1970 00:00:00 <acronym>GMT</acronym> darstellt. Das ist
  37. nur deshalb möglich, weil <classname>Zend_Date</classname> nicht durch
  38. <acronym>UNIX</acronym>-Zeitpunkte oder Integer-Zahlen limitert ist. Die BCMath
  39. Erweiterung wird benötigt, um extrem große Daten außerhalb des Bereichs vom
  40. Freitag dem 13.Dezember 1901 20:45:54 <acronym>GMT</acronym> bis zum 19. Januar
  41. 2038 03:14:07 <acronym>GMT</acronym> zu unterstützen. Zusätzlich können kleine
  42. Mathematikfehler aufgrund der inhärenten Beschränkungen des Float-Datentyps
  43. sowie durch Rundung auftreten, es sei denn, die BCMath Extension wird verwendet.
  44. </para>
  45. </listitem>
  46. <listitem>
  47. <para>
  48. Datumsabschnitte als Offsets in Zeitpunken
  49. </para>
  50. <para>
  51. Deswegen wird eine Objektinstanz, welche drei Stunden repräsentiert, als drei
  52. Stunden nach dem 01. Januar 1970 00:00:00 <acronym>GMT</acronym> bzw.
  53. 0 + 3 * 60 * 60 = 10800 dargestellt.
  54. </para>
  55. </listitem>
  56. <listitem>
  57. <para>
  58. <acronym>PHP</acronym> Funktionen
  59. </para>
  60. <para>
  61. Wo es möglich ist, verwendet <classname>Zend_Date</classname> normalerweise
  62. <acronym>PHP</acronym>-Funktionen, um die Geschwindigkeit zu erhöhen.
  63. </para>
  64. </listitem>
  65. </itemizedlist>
  66. </sect2>
  67. </sect1>