2
0

Zend_Date-Overview.xml 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: 20766 -->
  4. <sect1 id="zend.date.overview">
  5. <title>Zend_Date API Übersicht</title>
  6. <para>
  7. Obwohl die <acronym>API</acronym> von <classname>Zend_Date</classname> simpel und einheitlich
  8. ist, ist dessen Design aufgrund der reichhaltigen Permutationen von
  9. Operationen und Operanden flexibel und mächtig.
  10. </para>
  11. <sect2 id="zend.date.options">
  12. <title>Zend_Date Optionen</title>
  13. <sect3 id="zend.date.options.formattype">
  14. <title>Auswahl der Art des Datumsformats</title>
  15. <para>
  16. Viele Methoden benutzen Zeichenketten für Datumsformate so ähnlich wie
  17. <methodname>date()</methodname> von <acronym>PHP</acronym>. Wenn man mit den Zeichen
  18. der Datumsformaten von <acronym>PHP</acronym> mehr Erfahrung hat als mit den
  19. <acronym>ISO</acronym>-Zeichen für Formate, dann kann man
  20. <methodname>Zend_Date::setOptions(array('format_type' => 'php'))</methodname>
  21. benutzen. Danach können die Zeichen von <acronym>PHP</acronym> für Datumsformate für alle
  22. Funktionen verwendet werden, die einen <varname>$format</varname>-Parameter
  23. akzeptieren. Durch Benutzen von
  24. <methodname>Zend_Date::setOptions(array('format_type' => 'iso'))</methodname> kann
  25. man wieder auf den Standardmodus zurückwechseln, der nur <acronym>ISO</acronym>-Zeichen
  26. für Datumsformate unterstützt. Für eine Liste von unterstützten Zeichencodes
  27. kann hier nachgelesen werden: <link
  28. linkend="zend.date.constants.phpformats">selbst definierte AUSGABE-Formate bei
  29. Verwendung der date()-Formatzeichen von PHP</link>
  30. </para>
  31. </sect3>
  32. <sect3 id="zend.date.options.fixdst">
  33. <title>Sommer-/Winterzeit und Datumsberechnungen</title>
  34. <para>
  35. Wenn Daten manipuliert werden, überschreiten sie manchmal die <acronym>DST</acronym>-Grenze
  36. (Sommer-/Winterzeit), was normalerweise dazu führt, dass das Datum eine Stunde
  37. verliert oder hinzubekommt. Wenn zum Beispiel ein Monat zu einem Datum vor einer
  38. <acronym>DST</acronym>-Änderung hinzugefügt wird und der Ergebnismonat nach dieser
  39. Änderung liegt, sieht es so aus, als ob das Datum durch den Wert des geänderten Datums
  40. eine Stunde verliert oder hinzubekommt. Für Grenzstunden wie Mitternacht,
  41. für den ersten oder letzten Tag eines Monats, führt das Hinzufügen von genügend
  42. Monaten dazu, dass das Datum eine Stunde verliert, wenn die <acronym>DST</acronym>-Grenze
  43. überschritten wird und damit zum letzten Tag des Vormonats wird, was den Anschein
  44. eines "eins fehlt" Fehlers erweckt. Um diese Situationen zu vermeiden, kann
  45. die <acronym>DST</acronym>-Änderung durch Verwendung der
  46. Option <property>fix_dst</property> ignoriert werden. Wenn eine
  47. <acronym>DST</acronym>-Grenze überschritten wird, wird ja normalerweise abhängig
  48. vom Datum eine Stunde hinzugefügt oder entfernt. Zum Beispiel führt eine
  49. Datumsberechnung mit <acronym>DST</acronym> im Frühling zu einem Datum, welche einen
  50. Tag weniger hat als erwartet, wenn die Zeit des Originaldatums 00:00:00 war. Da
  51. <classname>Zend_Date</classname> auf Zeitstempeln basiert und nicht auf Kalenderdaten
  52. mit Zeitkomponenten, verliert der Zeitstempel eine Stunde, was zu einem Datum führt, das
  53. einen Kalendertag weniger hat, als erwartet. Um solche Problem zu verhindern, kann die
  54. Option <property>fix_dst</property> verwendet werden, welche standardmäßig
  55. <constant>TRUE</constant> ist. Das führt dazu, dass die <acronym>DST</acronym> keinen
  56. Einfluss mehr bei Datumsberechnungen hat (<methodname>addMonth()</methodname>,
  57. <methodname>subMonth()</methodname>).
  58. <methodname>Zend_Date::setOptions(array('fix_dst' => false))</methodname> kann
  59. benutzt werden, um Hinzufügen oder Entfernen der <acronym>DST</acronym>-Anpassung zu
  60. gestatten, wenn Datumsberechnungen durchgeführt werden.
  61. </para>
  62. <para>
  63. <emphasis>Wenn die aktuelle Zeitzone innerhalb der Instanz von
  64. <classname>Zend_Date</classname> auf <acronym>UTC</acronym> oder
  65. <acronym>GMT</acronym> gestellt ist, wird die Option '<property>fix_dst</property>'
  66. nicht verwendet</emphasis>, weil diese zwei Zeitzonen nicht mit
  67. <acronym>DST</acronym> arbeiten. Wenn die Zeitzone für diese Instanz wieder auf eine
  68. Zeitzone gestellt wird, die nicht <acronym>UTC</acronym> oder <acronym>GMT</acronym>
  69. ist, wird die vorher definierte Option 'fix_dst' wieder für die Datumsberechnungen
  70. verwendet.
  71. </para>
  72. </sect3>
  73. <sect3 id="zend.date.options.extendmonth">
  74. <title>Monatsberechnungen</title>
  75. <para>
  76. Wenn Monate zu einem existierenden Datum hinzugefügt oder davon entfernt werden, kann der
  77. Ergebniswert des Monatstages unerwartet sein, wenn das Originaldatum auf einen Tag
  78. gefallen ist, der Nahe am Ende des Monats ist. Wenn zum Beispiel ein Monat zum 31sten
  79. Jänner hinzugefügt wird, werden Personen, welche mit <acronym>SQL</acronym> vertraut
  80. sind, den 28sten Februar als Ergebnis erwarten. Auf der anderen Seite werden Personen,
  81. welche mit Excel und OpenOffice vertraut sind, den 3ten März als Ergebnis
  82. erwarten. Das Problem besteht nur, wenn der Ergebnismonat den Tag nicht hat,
  83. der im Originaldatum gesetzt war. Zend Framework Entwickler können das gewünschte
  84. Verhalten beeinflussen, indem die Option <property>extend_month</property> genutzt
  85. wird, die bei einem Wert von <constant>FALSE</constant> das
  86. <acronym>SQL</acronym>-Verhalten, oder bei einem Wert von <constant>TRUE</constant>
  87. das Tabellenverhalten auswählt. Das Standardverhalten für
  88. <property>extend_month</property> ist <constant>FALSE</constant>, um
  89. <acronym>SQL</acronym>-kompatibles Verhalten zu erlauben.
  90. <classname>Zend_Date</classname> führt Monatsberechnungen standardmäßig in der Art
  91. durch, dass Daten auf das Monatsende hin abgeschnitten werden (wenn notwendig), ohne
  92. dass in den nächsten Monat umgebrochen wird, wenn das Originaldatum einen Monatstag
  93. bestimmt, der die Anzahl der Tage des Ergebnismonats überschreitet.
  94. <methodname>Zend_Date::setOptions(array('extend_month' => true))</methodname> kann
  95. benutzt werden, um Monatsberechnungen wie in populären Tabellenkalkulationen
  96. durchzuführen.
  97. </para>
  98. </sect3>
  99. <sect3 id="zend.date.options.cache">
  100. <title>
  101. Lokalisierung und Normalisierung von Daten mit Zend_Cache schneller machen
  102. </title>
  103. <para>
  104. Man kann <classname>Zend_Date</classname> schneller machen, indem ein
  105. <classname>Zend_Cache</classname>-Adapter verwendet wird. Das verschnellert alle
  106. Methoden von <classname>Zend_Date</classname>, wenn lokalisierte Daten verwendet
  107. werden. Zum Beispiel werden alle Methoden hiervon profitieren, welche
  108. <constant>Zend_Date::DATE</constant> und <constant>Zend_Date::TIME</constant>
  109. Konstanten akzeptieren. Um einen
  110. <classname>Zend_Cache</classname>-Adapter für <classname>Zend_Date</classname> zu
  111. verwenden, muss nur
  112. <methodname>Zend_Date::setOptions(array('cache' => $adapter))</methodname>
  113. aufgerufen werden.
  114. </para>
  115. </sect3>
  116. <sect3 id="zend.date.options.timesync">
  117. <title>Syncronisierte Zeiten mit Zend_TimeSync erhalten</title>
  118. <para>
  119. Normalerweise unterscheiden sich die Uhren von Servern und Computern voneinander.
  120. <classname>Zend_Date</classname> ist dazu fähig, solche Probleme mit Hilfe von
  121. <classname>Zend_TimeSync</classname> zu handhaben. Mit
  122. <methodname>Zend_Date::setOptions(array('timesync' => $timeserver))</methodname>
  123. kann ein Zeitserver gesetzt werden, welcher den Unterschied zwischen dem eigenen
  124. aktuellen Zeitstempel und dem wirklichen aktuellen Zeitstempel für alle Instanzen von
  125. <classname>Zend_Date</classname> setzt. Die Verwendung dieser Option ändert nicht
  126. den Zeitstempel von bestehenden Instanzen. Am besten ist es also, dies innerhalb der
  127. Bootstrap-Datei zu setzen.
  128. </para>
  129. </sect3>
  130. </sect2>
  131. <sect2 id="zend.date.values">
  132. <title>Arbeiten mit Datumswerten</title>
  133. <para>
  134. Sobald die Eingabe durch die Erstellung eines <classname>Zend_Date</classname>-Objekts
  135. normalisiert wurde, hat es eine zugeordnete Zeitzone aber die interne Darstellung
  136. verwendet <ulink
  137. url="http://en.wikipedia.org/wiki/Unix_Time">UNIX-Zeitstempel</ulink>. Damit ein
  138. Datum in einer lokalisierten Art und Weise durchsucht werden kann, muss zuerst eine
  139. Zeitzone bekannt sein. Die Standardzeitzone ist immer <acronym>GMT</acronym> oder
  140. <acronym>UTC</acronym>. Um die Zeitzone des Objekts zu inspizieren, kann
  141. <methodname>getTimeZone()</methodname> verwendet werden. Um die Zeitzone des Objekts zu
  142. wechseln, kann <methodname>setTimeZone()</methodname> verwendet werden. Alle Änderungen
  143. des Objekts sind immer relativ zu seiner Zeitzone zu sehen.
  144. </para>
  145. <para>
  146. Man sollte es vermeiden, Teile von Datumsobjekten mit unterschiedlichen Zeitzonen
  147. zu mischen oder zu vergleichen, da dies grundsätzlich unerwartete Resultate zeigen kann,
  148. es sei denn, die Manipulationen beziehen sich nur auf den [UNIX-]Zeitstempel. Das Arbeiten mit
  149. <classname>Zend_Date</classname>-Objekten, die unterschiedliche Zeitzonen haben,
  150. funktioniert grundsätzlich, abgesehen davon wie vorher erwähnt, da Daten bei der
  151. Instantiierung von <classname>Zend_Date</classname> zu
  152. <acronym>UNIX</acronym>-Zeitstempel normalisiert werden.
  153. </para>
  154. <para>
  155. Die meisten Methoden erwarten eine Konstante für die Auswahl des gewünschten Teils
  156. <varname>$part</varname> des Datums, wie z.B. <constant>Zend_Date::HOUR</constant>.
  157. Diese Konstanten sind für alle unten angeführten Funktionen gültig. Eine Liste aller
  158. vorhandenen Konstanten wird hier beschrieben: <link
  159. linkend="zend.date.constants.list">Liste aller Konstanten</link>. Wenn
  160. <varname>$part</varname> nicht spezifiziert wird, wird
  161. <constant>Zend_Date::TIMESTAMP</constant> angenommen. Alternativ kann ein
  162. benutzerdefiniertes Format für <varname>$part</varname> verwendet werden, mit Hilfe der
  163. gleichen Mechanismen und Formatdefinitionen wie bei <link
  164. linkend="zend.locale.date.normalize"><methodname>Zend_Locale_Format::getDate()</methodname></link>.
  165. Wenn ein Datumsobjekt durch Verwendung eines offensichtlich falschen Datums
  166. erstellt wird (z.B. wenn die Nummer des Monats größer als 12 ist), wird <classname>Zend_Date</classname>
  167. eine Ausnahme werfen, solange kein spezielles Datumsformat ausgewählt wurde, das heißt,
  168. <varname>$part</varname> ist entweder <constant>NULL</constant> oder
  169. <constant>Zend_Date::DATES</constant> (ein "fehlertolerantes" Format).
  170. </para>
  171. <example id="zend.date.values.example-1">
  172. <title>Benutzerdefinierte Eingabeformate für Daten</title>
  173. <programlisting language="php"><![CDATA[
  174. $date1 = new Zend_Date('Feb 31, 2007', null, 'en_US');
  175. echo $date1, "\n"; // Ausgabe "Mar 3, 2007 12:00:00 AM"
  176. $date2 = new Zend_Date('Feb 31, 2007', Zend_Date::DATES, 'en_US');
  177. echo $date2, "\n"; // Ausgabe "Mar 3, 2007 12:00:00 AM"
  178. // Stikte Interpretation des angegebenen Formats
  179. $date3 = new Zend_Date('Feb 31, 2007', 'MM.dd.yyyy');
  180. echo $date3, "\n"; // Ausgabe "Mar 3, 2007 12:00:00 AM"
  181. ]]></programlisting>
  182. </example>
  183. <para>
  184. Wenn der optionale Parameter <varname>$locale</varname> angegeben wird, dann
  185. macht <varname>$locale</varname> den <varname>$date</varname>-Operand durch
  186. Ersetzen der Monatsnamen und Wochentagsnamen für die Zeichenkette
  187. <varname>$date</varname> eindeutig und sogar Datumszeichenketten können gemäß den
  188. Konventionen dieses Gebietsschemas analysiert werden (siehe <link
  189. linkend="zend.locale.date.normalize">Zend_Locale_Format::getDate()</link>).
  190. Die automatische Normalisierung von lokalisierten <varname>$date</varname>-Angaben einer
  191. Zeichenkette werden nur dann durchgeführt wenn für <varname>$part</varname> eine der
  192. Konstanten <constant>Zend_Date::DATE</constant>* oder <constant>Zend_Date::TIME</constant>*
  193. verwendet wird. Das Gebietsschema identifiziert die Sprache, welche verwendet
  194. werden soll, um Monatsnamen und Wochentagsnamen zu analysieren, wenn
  195. <varname>$date</varname> eine Zeichenkette ist, die ein Datum enthält. Wenn der
  196. Eingabeparameter <varname>$date</varname> nicht angegeben wurde, dann definiert der
  197. Parameter <varname>$locale</varname> das Gebietsschema für lokalisierte Ausgaben (z.B.
  198. das Datumsformat für eine Ausgabe als Zeichenkette). Anzumerken ist auch, dass der
  199. Parameter <varname>$date</varname> stattdessen ein Typname sein kann (z.B.
  200. <varname>$hour</varname> für <methodname>addHour()</methodname>) wobei das nicht verhindert,
  201. dass ein <classname>Zend_Date</classname> Objekt als Argument für diesen
  202. Parameter angegeben werden kann. Wenn <varname>$locale</varname> nicht angegeben wurde,
  203. wird das Gebietsschema des aktuellen Objekts genommen, um <varname>$date</varname> zu
  204. interpretieren oder das lokalisierte Format für die Ausgabe auszuwählen.
  205. </para>
  206. <para>
  207. Seit Zend Framework 1.7.0 unterstützt <classname>Zend_Date</classname> auch die
  208. Verwendung eines anwendungsweiten Gebietsschemas. Man kann ganz einfach eine
  209. <classname>Zend_Locale</classname>-Instanz in der Registry setzen wie hier gezeigt. Mit
  210. dieser Schreibweise braucht man sich nicht um das manuelle Setzen eines Gebietsschemas für jede Instanz
  211. zu kümmern, wenn man dasselbe Gebietsschema mehrere Male verwenden will.
  212. </para>
  213. <programlisting language="php"><![CDATA[
  214. // In der Bootstrap-Datei
  215. $locale = new Zend_Locale('de_AT');
  216. Zend_Registry::set('Zend_Locale', $locale);
  217. // Irgendwo in der eigenen Anwendung
  218. $date = new Zend_Date('31.Feb.2007');
  219. ]]></programlisting>
  220. </sect2>
  221. <sect2 id="id.date.basic">
  222. <title>Grundsätzliche Zend_Date Operationen für die meisten Teile von Daten</title>
  223. <para>
  224. Die Methoden <methodname>add()</methodname>, <methodname>sub()</methodname>,
  225. <methodname>compare()</methodname>, <methodname>get()</methodname> und
  226. <methodname>set()</methodname> arbeiten generell mit Daten. In jedem Fall wird die
  227. Operation auf dem Datum durchgeführt, das in der Objektinstanz vorhanden ist. Der
  228. <varname>$date</varname> Operand wird für alle diese Methoden benötigt, außer für
  229. <methodname>get()</methodname> und kann eine <classname>Zend_Date</classname>
  230. Objektinstanz, eine numerische Zeichenkette oder ein Integer sein. Diese Methoden
  231. nehmen an, dass <varname>$date</varname> ein Zeitstempel ist, wenn es kein Objekt ist.
  232. Trotzdem kontrolliert der <varname>$part</varname> Operand, an welchem logischen Teil
  233. der zwei Daten gearbeitet werden soll, was Arbeiten an Teilen von Daten des Objekts
  234. erlaubt, wie Jahr oder Minute, selbst wenn <varname>$date</varname> eine lange Form
  235. einer Datumszeichenkette enthält wie "Dezember 31, 2007 23:59:59". Das Ergebnis der
  236. Operation ändert das Datum im Objekt außer bei <methodname>compare()</methodname> und
  237. <methodname>get()</methodname>.
  238. </para>
  239. <example id="zend.date.basic.example-1">
  240. <title>Arbeiten an Teilen von Daten</title>
  241. <programlisting language="php"><![CDATA[
  242. $date = new Zend_Date(); // $date's Zeitstempel === time()
  243. // Ändert $date durch addieren von 12 Stunden
  244. $date->add('12', Zend_Date::HOUR);
  245. print $date;
  246. ]]></programlisting>
  247. </example>
  248. <para>
  249. Es existieren Komfortmethoden für jede Kombination von Grundoperationen und viele normale
  250. Datumsabschnitte wie in der unten stehenden Tabelle gezeigt. Diese Komfortmethoden erlauben uns
  251. faulen Programmierern zu vermeiden, dass die <link
  252. linkend="zend.date.constants.list">Konstanten für Datumsabschnitte</link>
  253. ausgeschrieben werden müssen. Bequemerweise sind sie benannt durch Kombination eines
  254. Prefixes (Name der Basisoperation) und einem Suffix (Art des Datumsabschnittes), wie
  255. <methodname>addYear()</methodname>. In der unten stehenden Liste existieren alle
  256. Kombinationen von "Datumsabschnitten" und "Basisoperationen". Zum Beispiel die
  257. Operation "add" existiert für jeden dieser Datumsabschnitte wie
  258. <methodname>addDay()</methodname>, <methodname>addYear()</methodname> und viele mehr.
  259. </para>
  260. <para>
  261. Diese Komfortmethoden haben eine gleichwertige Funktionalität wie die Methoden für
  262. die Basisoperationen, aber sie erwarten <varname>$date</varname>-Operanden vom
  263. Typ Zeichenkette oder Integer, welche nur die Werte enthalten, die durch den Typ
  264. definiert sind, der durch das Suffix der Methode definiert wurde. Deshalb identifizieren
  265. diese Methoden (z.B. "Year" oder "Minute") die Einheit des <varname>$date</varname>
  266. Operanden, wenn <varname>$date</varname> eine Zeichenkette oder ein Integer ist
  267. </para>
  268. <sect3 id="id.date.basic.parts">
  269. <title>Liste der Datumsabschnitte</title>
  270. <table id="id.date.basic.parts.table">
  271. <title>Datumsabschnitte</title>
  272. <tgroup cols="2">
  273. <thead>
  274. <row>
  275. <entry>Datumsabschnitt</entry>
  276. <entry>Erklärung</entry>
  277. </row>
  278. </thead>
  279. <tbody>
  280. <row>
  281. <entry>
  282. <ulink
  283. url="http://en.wikipedia.org/wiki/Unix_Time">Zeitstempel</ulink>
  284. </entry>
  285. <entry>
  286. UNIX-Zeitstempel, ausgedrückt in Sekunden die vergangen sind seit dem
  287. 1. Jänner, 1970 00:00:00 <acronym>GMT</acronym>.
  288. </entry>
  289. </row>
  290. <row>
  291. <entry>
  292. <ulink
  293. url="http://en.wikipedia.org/wiki/Gregorian_calendar">Jahr</ulink>
  294. </entry>
  295. <entry>Gregorianisches Kalenderjahr (z.B. 2006)</entry>
  296. </row>
  297. <row>
  298. <entry>
  299. <ulink
  300. url="http://en.wikipedia.org/wiki/Month#Julian_and_Gregorian_calendars">Monat</ulink>
  301. </entry>
  302. <entry>
  303. Gregorianisches Kalendermonat (1-12, Lokalisierte Namen werden
  304. unterstützt)
  305. </entry>
  306. </row>
  307. <row>
  308. <entry>
  309. <ulink url="http://en.wikipedia.org/wiki/24-hour_clock">24 Stunden
  310. Uhr</ulink>
  311. </entry>
  312. <entry>
  313. Stunde des Tages (0-23) bezeichnet die vergangenen Stunden seit dem
  314. Beginn des Tages
  315. </entry>
  316. </row>
  317. <row>
  318. <entry>
  319. <ulink url="http://en.wikipedia.org/wiki/Minute">Minute</ulink>
  320. </entry>
  321. <entry>
  322. Minuten der Stunde (0-59) bezeichnet die vergangenen Minuten seit
  323. dem Beginn der Stunde
  324. </entry>
  325. </row>
  326. <row>
  327. <entry>
  328. <ulink url="http://en.wikipedia.org/wiki/Second">Sekunde</ulink>
  329. </entry>
  330. <entry>
  331. Sekunde der Minute (0-59) bezeichnet die vergangenen Sekunden seit
  332. dem Beginn der Minute
  333. </entry>
  334. </row>
  335. <row>
  336. <entry>
  337. <ulink url="http://en.wikipedia.org/wiki/Millisecond">Millisekunde</ulink>
  338. </entry>
  339. <entry>
  340. Millisekunden bezeichnen Tausendstel einer Sekunde (0-999).
  341. <classname>Zend_Date</classname> unterstützt zwei zusätzliche
  342. Methoden für das Arbeiten mit Zeiteinheiten, die kleiner als Sekunden
  343. sind. Normalerweise verwenden <classname>Zend_Date</classname>
  344. Instanzen eine Genauigkeit, welche der von Millisekunden entspricht
  345. wie man durch <methodname>getFractionalPrecision()</methodname>
  346. sehen kann. Um die Genauigkeit zu ändern, kann
  347. <methodname>setFractionalPrecision($precision)</methodname>
  348. verwendet werden. Trotzdem ist die Genauigkeit praktisch auf
  349. Millisekunden begrenzt, da <classname>Zend_Date</classname> <ulink
  350. url="http://php.net/microtime">microtime()</ulink> dafür
  351. benutzt.
  352. </entry>
  353. </row>
  354. <row>
  355. <entry>
  356. <ulink url="http://en.wikipedia.org/wiki/Day">Tag</ulink>
  357. </entry>
  358. <entry>
  359. <constant>Zend_Date::DAY_SHORT</constant> wird von
  360. <varname>$date</varname> extrahiert, wenn der
  361. Operand <varname>$date</varname> eine
  362. <classname>Zend_Date</classname>-Instanz oder eine numerische
  363. Zeichenkette ist. Sonst wird versucht, den Tag gemäß den
  364. dokumentierten Konventionen für diese Konstanten zu extrahieren:
  365. <constant>Zend_Date::WEEKDAY_NARROW</constant>,
  366. <constant>Zend_Date::WEEKDAY_NAME</constant>,
  367. <constant>Zend_Date::WEEKDAY_SHORT</constant>,
  368. <constant>Zend_Date::WEEKDAY</constant> (Gregorianischer Kalender
  369. angenommen)
  370. </entry>
  371. </row>
  372. <row>
  373. <entry>
  374. <ulink url="http://en.wikipedia.org/wiki/Week">Woche</ulink>
  375. </entry>
  376. <entry>
  377. <constant>Zend_Date::WEEK</constant> wird von
  378. <varname>$date</varname> extrahiert, wenn der
  379. Operand <varname>$date</varname> eine Instanz von
  380. <classname>Zend_Date</classname> oder eine numerische Zeichenkette
  381. ist. Sonst wird eine Ausnahme geworfen. (Gregorianischer Kalender
  382. angenommen)
  383. </entry>
  384. </row>
  385. <row>
  386. <entry>Datum</entry>
  387. <entry>
  388. <constant>Zend_Date::DAY_MEDIUM</constant> wird aus
  389. <varname>$date</varname> extrahiert wenn der
  390. Operand <varname>$date</varname> eine Instanz von
  391. <classname>Zend_Date</classname> ist. Sonst wird versucht, den
  392. <varname>$date</varname>-String des Datums in ein
  393. <constant>Zend_Date::DATE_MEDIUM</constant>-formatiertes Datum zu
  394. normalisieren. Das Format von
  395. <constant>Zend_Date::DATE_MEDIUM</constant> hängt vom Gebietsschema
  396. des Objekts ab.
  397. </entry>
  398. </row>
  399. <row>
  400. <entry>Wochentage</entry>
  401. <entry>
  402. Wochentage werden numerisch dargestellt von 0 (für Sonntag) bis 6
  403. (für Samstag). <constant>Zend_Date::WEEKDAY_DIGIT</constant> wird
  404. aus <varname>$date</varname> extrahiert wenn der
  405. Operand <varname>$date</varname> eine Instanz von
  406. <classname>Zend_Date</classname> oder eine numerische Zeichenkette
  407. ist. Sonst wird versucht, den Tag gemäß den dokumentierten
  408. Konventionen für diese Konstanten zu extrahieren:
  409. <constant>Zend_Date::WEEKDAY_NARROW</constant>,
  410. <constant>Zend_Date::WEEKDAY_NAME</constant>,
  411. <constant>Zend_Date::WEEKDAY_SHORT</constant>,
  412. <constant>Zend_Date::WEEKDAY</constant> (Gregorianischer Kalender
  413. angenommen)
  414. </entry>
  415. </row>
  416. <row>
  417. <entry>Tag des Jahres</entry>
  418. <entry>
  419. In <classname>Zend_Date</classname> wird der Tag des Jahres als
  420. Anzahl der Kalendertage dargestellt, die seit dem Start des Jahres
  421. vergangen sind (0-365). Wie bei den anderen oben dargestellten
  422. Einheiten, werden Bruchteile auf die nächste ganze Zahl abgerundet.
  423. (Gregorianischer Kalender angenommen)
  424. </entry>
  425. </row>
  426. <row>
  427. <entry>
  428. <ulink url="http://www.faqs.org/rfcs/rfc822.html">Arpa</ulink>
  429. </entry>
  430. <entry>
  431. Arpa-Daten (bzw. <acronym>RFC</acronym> 822 formatierte Daten) werden
  432. unterstützt. Die Ausgabe verwendet entweder "GMT" oder "Laut
  433. Gebietsschema unterschiedliche Stunden + Minuten" Format (siehe
  434. Sektion 5 von <acronym>RFC</acronym> 822). Vor
  435. <acronym>PHP</acronym> 5.2.2, zeigte die Verwendung der
  436. <constant>DATE_RFC822</constant> Konstante mit
  437. <acronym>PHP</acronym> date-Funktionen hier und da
  438. <ulink url="http://bugs.php.net/bug.php?id=40308">fehlerhafte
  439. Ergebnisse</ulink>. Die Ergebnisse von
  440. <classname>Zend_Date</classname> sind korrekt. Beispiel:
  441. Mon, 31 Dec 06 23:59:59 <acronym>GMT</acronym>
  442. </entry>
  443. </row>
  444. <row>
  445. <entry>
  446. <ulink url="http://en.wikipedia.org/wiki/ISO_8601">Iso</ulink>
  447. </entry>
  448. <entry>
  449. Für die Ausgabe werden nur vollständige <acronym>ISO</acronym> 8601
  450. Daten unterstützt. Beispiel: 2009-02-14T00:31:30+01:00
  451. </entry>
  452. </row>
  453. </tbody>
  454. </tgroup>
  455. </table>
  456. </sect3>
  457. <sect3 id="id.date.basic.operations">
  458. <title>Liste der Datums-Operationen</title>
  459. <para>
  460. Die unten aufgeführten Basisoperationen können statt den Komfortoperationen für
  461. spezielle Datumsabschnitte verwendet werden, wenn die <link
  462. linkend="zend.date.constants.list">entsprechenden Konstanten</link> für
  463. den Parameter <varname>$part</varname> verwendet werden.
  464. </para>
  465. <table id="id.date.basic.operations.table">
  466. <title>Basisoperationen</title>
  467. <tgroup cols="2">
  468. <thead>
  469. <row>
  470. <entry>Basisoperationen</entry>
  471. <entry>Erklärung</entry>
  472. </row>
  473. </thead>
  474. <tbody>
  475. <row>
  476. <entry><methodname>get()</methodname></entry>
  477. <entry>
  478. <para>
  479. <emphasis><methodname>get($part = null, $locale =
  480. null)</methodname></emphasis>
  481. </para>
  482. <para>
  483. <methodname>get($part)</methodname> kann benutzt werden, um einen
  484. Datumsabschnitt <varname>$part</varname> dieses Datumsobjekts,
  485. welcher in ein Gebietsschema von <varname>$locale</varname>
  486. lokalisiert oder als formatierte Zeichenkette oder Integer
  487. gewünscht ist zurück zu bekommen. Durch Verwendung der BCMath
  488. Erweiterung können numerische Zeichenketten statt Integer für
  489. große Werte zurückgegeben werden.
  490. </para>
  491. <note>
  492. <title>Verhalten von get()</title>
  493. <para>
  494. Anders als <methodname>get()</methodname> geben die anderen
  495. get*()-Komfortmethoden nur Instanzen von
  496. <classname>Zend_Date</classname> zurück, welche nur das Datum
  497. oder die Zeit repräsentieren, das ausgewählt oder berechnet
  498. wurde.
  499. </para>
  500. </note>
  501. </entry>
  502. </row>
  503. <row>
  504. <entry><methodname>set()</methodname></entry>
  505. <entry>
  506. <para>
  507. <emphasis><methodname>set($date, $part = null, $locale =
  508. null)</methodname></emphasis>
  509. </para>
  510. <para>
  511. Setzt den Abschnitt <varname>$part</varname> des aktuellen
  512. Objekts übereinstimmend mit dem Wert, der für diesen Abschnitt
  513. in der Eingabe <varname>$date</varname> und im Gebietsschema
  514. <varname>$locale</varname> gefunden wurde.
  515. </para>
  516. </entry>
  517. </row>
  518. <row>
  519. <entry><methodname>add()</methodname></entry>
  520. <entry>
  521. <para>
  522. <emphasis><methodname>add($date, $part = null, $locale =
  523. null)</methodname></emphasis>
  524. </para>
  525. <para>
  526. Addiert den Abschnitt <varname>$part</varname> von
  527. <varname>$date</varname>, welcher im Gebietsschema
  528. <varname>$locale</varname> geschrieben ist, zum Datum des
  529. aktuellen Objekts.
  530. </para>
  531. </entry>
  532. </row>
  533. <row>
  534. <entry><methodname>sub()</methodname></entry>
  535. <entry>
  536. <para>
  537. <emphasis><methodname>sub($date, $part = null, $locale =
  538. null)</methodname></emphasis>
  539. </para>
  540. <para>
  541. Subtrahiert den Abschnitt <varname>$part</varname> von
  542. <varname>$date</varname>, welcher im Gebietsschema
  543. <varname>$locale</varname> geschrieben ist, vom Datum des
  544. aktuellen Objekts.
  545. </para>
  546. </entry>
  547. </row>
  548. <row>
  549. <entry><methodname>copyPart()</methodname></entry>
  550. <entry>
  551. <para>
  552. <emphasis><methodname>copyPart($part, $locale =
  553. null)</methodname></emphasis>
  554. </para>
  555. <para>
  556. Gibt ein geklontes Objekt zurück, wobei nur der gewünschte
  557. Abschnitt <varname>$part</varname> des Datumsobjekts kopiert
  558. wird und im Klon das Gebietsschema von
  559. <varname>$locale</varname> gesetzt wird (wenn angegeben).
  560. </para>
  561. </entry>
  562. </row>
  563. <row>
  564. <entry><methodname>compare()</methodname></entry>
  565. <entry>
  566. <para>
  567. <emphasis><methodname>compare($date, $part = null, $locale =
  568. null)</methodname></emphasis>
  569. </para>
  570. <para>
  571. Vergleicht den Abschnitt <varname>$part</varname> des Datums
  572. <varname>$date</varname> mit dem Zeitstempel des Objekts. Gibt 0
  573. zurück, wenn sie gleich sind, 1 wenn der Abschnitt dieses
  574. Objekts früher war als der Abschnitt von
  575. <varname>$date</varname> und andernfalls -1.
  576. </para>
  577. </entry>
  578. </row>
  579. </tbody>
  580. </tgroup>
  581. </table>
  582. </sect3>
  583. </sect2>
  584. <sect2 id="zend.date.others.comparison">
  585. <title>Vergleichen von Daten</title>
  586. <para>
  587. Die folgenden Basisoperationen haben keine vergleichbaren vereinfachten Methoden für
  588. Datumsabschnitt wie beschrieben unter <link linkend="zend.date.overview">Zend_Date API
  589. Overview</link>.
  590. </para>
  591. <table id="zend.date.others.comparison.table">
  592. <title>Methoden zum Vergleichen von Daten</title>
  593. <tgroup cols="2">
  594. <thead>
  595. <row>
  596. <entry>Methoden</entry>
  597. <entry>Beschreibung</entry>
  598. </row>
  599. </thead>
  600. <tbody>
  601. <row>
  602. <entry><methodname>equals()</methodname></entry>
  603. <entry>
  604. <para>
  605. <emphasis><methodname>equals($date, $part = null, $locale =
  606. null)</methodname></emphasis>
  607. </para>
  608. <para>
  609. Gibt <constant>TRUE</constant> zurück, wenn der Abschnitt
  610. <varname>$part</varname> von <varname>$date</varname> der das
  611. Gebietsschema <varname>$locale</varname> hat, der gleiche ist wie
  612. der Abschnitt <varname>$part</varname> vom Datum des Objekts,
  613. andernfalls <constant>FALSE</constant>
  614. </para>
  615. </entry>
  616. </row>
  617. <row>
  618. <entry><methodname>isEarlier()</methodname></entry>
  619. <entry>
  620. <para>
  621. <emphasis><methodname>isEarlier($date, $part = null, $locale =
  622. null)</methodname></emphasis>
  623. </para>
  624. <para>
  625. Gibt <constant>TRUE</constant> zurück, wenn der Abschnitt
  626. <varname>$part</varname> vom Datum des Objekts früher ist als der
  627. Abschnitt <varname>$part</varname> von <varname>$date</varname> der
  628. das Gebietsschema <varname>$locale</varname> hat
  629. </para>
  630. </entry>
  631. </row>
  632. <row>
  633. <entry><methodname>isLater()</methodname></entry>
  634. <entry>
  635. <para>
  636. <emphasis><methodname>isLater($date, $part = null, $locale =
  637. null)</methodname></emphasis>
  638. </para>
  639. <para>
  640. Gibt <constant>TRUE</constant> zurück, wenn der Abschnitt
  641. <varname>$part</varname> vom Datum des Objekts später ist als der
  642. Abschnitt <varname>$part</varname> von <varname>$date</varname> der
  643. das Gebietsschema <varname>$locale</varname> hat
  644. </para>
  645. </entry>
  646. </row>
  647. <row>
  648. <entry><methodname>isToday()</methodname></entry>
  649. <entry>
  650. <para>
  651. <emphasis><methodname>isToday()</methodname></emphasis>
  652. </para>
  653. <para>
  654. Testet ob Jahr, Monat und Tag des heutigen Datums mit dem Datumswert
  655. des Objekts übereinstimmen, wenn die Zeitzone des Objekts
  656. verwendet wird.
  657. </para>
  658. </entry>
  659. </row>
  660. <row>
  661. <entry><methodname>isTomorrow()</methodname></entry>
  662. <entry>
  663. <para>
  664. <emphasis><methodname>isTomorrow()</methodname></emphasis>
  665. </para>
  666. <para>
  667. Testet ob Jahr, Monat und Tag des morgigen Datums mit dem Datumswert
  668. des Objekts übereinstimmen, wenn die Zeitzone des Objekts
  669. verwendet wird.
  670. </para>
  671. </entry>
  672. </row>
  673. <row>
  674. <entry><methodname>isYesterday()</methodname></entry>
  675. <entry>
  676. <para>
  677. <emphasis><methodname>isYesterday()</methodname></emphasis>
  678. </para>
  679. <para>
  680. Testet ob Jahr, Monat und Tag des gestrigen Datums mit dem
  681. Datumswert des Objekts übereinstimmen, wenn die Zeitzone des
  682. Objekts verwendet wird.
  683. </para>
  684. </entry>
  685. </row>
  686. <row>
  687. <entry><methodname>isLeapYear()</methodname></entry>
  688. <entry>
  689. <para>
  690. <emphasis><methodname>isLeapYear()</methodname></emphasis>
  691. </para>
  692. <para>
  693. <methodname>isLeapYear()</methodname> kann benutzt werden, um zu
  694. prüfen, ob das aktuelle Objekt ein Schaltjahr ist. Sonst kann
  695. <methodname>Zend_Date::checkLeapYear($year)</methodname> benutzt
  696. werden, um das Jahr <varname>$year</varname> zu prüfen, welches eine
  697. Zeichenkette, ein Integer oder eine Instanz von
  698. <classname>Zend_Date</classname> sein kann. Ist das Jahr ein
  699. Schaltjahr?
  700. </para>
  701. </entry>
  702. </row>
  703. <row>
  704. <entry><methodname>isDate()</methodname></entry>
  705. <entry>
  706. <para>
  707. <emphasis><methodname>isDate($date, $format = null, $locale =
  708. null)</methodname></emphasis>
  709. </para>
  710. <para>
  711. Diese Methode prüft, ob ein angegebenes Datum ein echtes Datum ist,
  712. und gibt <constant>TRUE</constant> zurück, wenn alle Prüfungen in
  713. Ordnung waren. Sie arbeitet wie die <acronym>PHP</acronym>-Funktion
  714. <methodname>checkdate()</methodname>, kann aber auch
  715. lokalisierte Monatsnamen prüfen sowie Daten, die den Bereich von
  716. <methodname>checkdate()</methodname> übersteigen
  717. </para>
  718. </entry>
  719. </row>
  720. </tbody>
  721. </tgroup>
  722. </table>
  723. </sect2>
  724. <sect2 id="zend.date.others.gettingparts">
  725. <title>Daten und Teile von Daten abfragen</title>
  726. <para>
  727. Mehrere Methoden erlauben es, Werte abzurufen, die sich auf eine
  728. <classname>Zend_Date</classname>-Instanz beziehen.
  729. </para>
  730. <table id="zend.date.others.gettingparts.table">
  731. <title>Ausgabemethoden von Daten</title>
  732. <tgroup cols="2">
  733. <thead>
  734. <row>
  735. <entry>Methode</entry>
  736. <entry>Erklärung</entry>
  737. </row>
  738. </thead>
  739. <tbody>
  740. <row>
  741. <entry><methodname>toString()</methodname></entry>
  742. <entry>
  743. <para>
  744. <emphasis><methodname>toString($format = null, $locale =
  745. null)</methodname></emphasis>
  746. </para>
  747. <para>
  748. Direkt aufzurufen oder über die magische Methode
  749. <methodname>__toString()</methodname>. Die
  750. Methode <methodname>toString()</methodname> formatiert automatisch
  751. den Wert des Datumsobjekts anhand der Konventionen des
  752. Gebietsschemas des Objekts oder einem optional definierten
  753. Gebietsschema <varname>$locale</varname>. Für eine Liste von
  754. unterstützten Formatcodes kann hier nachgeschaut werden:
  755. <link linkend="zend.date.constants.selfdefinedformats">selbst
  756. definierte AUSGABE Formate mit ISO</link>.
  757. </para>
  758. </entry>
  759. </row>
  760. <row>
  761. <entry><methodname>toArray()</methodname></entry>
  762. <entry>
  763. <para>
  764. <emphasis><methodname>toArray()</methodname></emphasis>
  765. </para>
  766. <para>
  767. Gibt eine Array-Representation des ausgewählten Datums anhand der
  768. Konventionen des Gebietsschemas zurück. Das zurückgegebene Array ist
  769. identisch zur <acronym>PHP</acronym>-Funktion <ulink
  770. url="http://php.net/getdate">getdate()</ulink> und
  771. beinhaltet:
  772. </para>
  773. <itemizedlist>
  774. <listitem>
  775. <para>
  776. Tag als Zahl mit '<emphasis>day</emphasis>'
  777. (<constant>Zend_Date::DAY_SHORT</constant>)
  778. </para>
  779. </listitem>
  780. <listitem>
  781. <para>
  782. Monat als Zahl mit '<emphasis>month</emphasis>'
  783. (<constant>Zend_Date::MONTH_SHORT</constant>)
  784. </para>
  785. </listitem>
  786. <listitem>
  787. <para>
  788. Jahr als '<emphasis>year</emphasis>'
  789. (<constant>Zend_Date::YEAR</constant>)
  790. </para>
  791. </listitem>
  792. <listitem>
  793. <para>
  794. Stunde als '<emphasis>hour</emphasis>'
  795. (<constant>Zend_Date::HOUR_SHORT</constant>)
  796. </para>
  797. </listitem>
  798. <listitem>
  799. <para>
  800. Minute als '<emphasis>minute</emphasis>'
  801. (<constant>Zend_Date::MINUTE_SHORT</constant>)
  802. </para>
  803. </listitem>
  804. <listitem>
  805. <para>
  806. Sekunde als '<emphasis>second</emphasis>'
  807. (<constant>Zend_Date::SECOND_SHORT</constant>)
  808. </para>
  809. </listitem>
  810. <listitem>
  811. <para>
  812. Abgekürzte Zeitzone als '<emphasis>timezone</emphasis>'
  813. (<constant>Zend_Date::TIMEZONE</constant>)
  814. </para>
  815. </listitem>
  816. <listitem>
  817. <para>
  818. Unix-Zeitstempel als '<emphasis>timestamp</emphasis>'
  819. (<constant>Zend_Date::TIMESTAMP</constant>)
  820. </para>
  821. </listitem>
  822. <listitem>
  823. <para>
  824. Wochentag als Zahl mit '<emphasis>weekday</emphasis>'
  825. (<constant>Zend_Date::WEEKDAY_DIGIT</constant>)
  826. </para>
  827. </listitem>
  828. <listitem>
  829. <para>
  830. Tag des Jahres als '<emphasis>dayofyear</emphasis>'
  831. (<constant>Zend_Date::DAY_OF_YEAR</constant>)
  832. </para>
  833. </listitem>
  834. <listitem>
  835. <para>
  836. Woche als '<emphasis>week</emphasis>'
  837. (<constant>Zend_Date::WEEK</constant>)
  838. </para>
  839. </listitem>
  840. <listitem>
  841. <para>
  842. Abstand der Zeitzone zu <acronym>GMT</acronym> als
  843. '<emphasis>gmtsecs</emphasis>'
  844. (<constant>Zend_Date::GMT_SECS</constant>)
  845. </para>
  846. </listitem>
  847. </itemizedlist>
  848. </entry>
  849. </row>
  850. <row>
  851. <entry><methodname>toValue()</methodname></entry>
  852. <entry>
  853. <para>
  854. <emphasis><methodname>toValue($part = null)</methodname></emphasis>
  855. </para>
  856. <para>
  857. Gibt eine Integer-Repräsentation des ausgewählten Datumsabschnittes
  858. <varname>$part</varname> anhand der Konventionen des
  859. Gebietsschemas des Objekts zurück. Gibt <constant>FALSE</constant> zurück
  860. wenn der Abschnitt <varname>$part</varname> ein nicht numerischer
  861. Wert ist, wie <constant>Zend_Date::MONTH_NAME_SHORT</constant>.
  862. </para>
  863. <note>
  864. <title>Grenzen von toValue()</title>
  865. <para>
  866. Diese Methode ruft <link
  867. linkend="id.date.basic.operations"><methodname>get()</methodname></link>
  868. auf und castet das Ergebnis in einen <acronym>PHP</acronym>
  869. Integer-Wert, welcher unerwartete Ergebnisse liefern wird, wenn
  870. <methodname>get()</methodname> eine numerische Zeichenkette
  871. zurückgibt, die eine Zahl enthält, welche zu groß für einen
  872. <acronym>PHP</acronym> Integer-Wert auf Ihrem System ist.
  873. Stattdessen sollte <methodname>get()</methodname> benutzt
  874. werden.
  875. </para>
  876. </note>
  877. </entry>
  878. </row>
  879. <row>
  880. <entry>
  881. <link linkend="id.date.basic.operations">get()</link>
  882. </entry>
  883. <entry>
  884. <para>
  885. <emphasis><methodname>get($part = null, $locale =
  886. null)</methodname></emphasis>
  887. </para>
  888. <para>
  889. Diese Methode gibt den Abschnitt <varname>$part</varname> vom Datum
  890. des Objekts, welches mit dem Gebietsschema
  891. <varname>$locale</varname> lokalisiert wurde, als formatierten
  892. String oder Integer zurück. Für weitere Informationen hier
  893. weiterlesen: <link linkend="id.date.basic.operations">get()</link>.
  894. </para>
  895. </entry>
  896. </row>
  897. <row>
  898. <entry><methodname>now()</methodname></entry>
  899. <entry>
  900. <para>
  901. <emphasis><methodname>now($locale = null)</methodname></emphasis>
  902. </para>
  903. <para>
  904. Diese Komfortfunktion ist identisch mit
  905. <command>new Zend_Date()</command>. Sie gibt das aktuelle Datum als
  906. <classname>Zend_Date</classname> Objekt zurück, welches das
  907. Gebietsschema <varname>$locale</varname> hat.
  908. </para>
  909. </entry>
  910. </row>
  911. </tbody>
  912. </tgroup>
  913. </table>
  914. </sect2>
  915. <sect2 id="zend.date.others.fractions">
  916. <title>Arbeiten mit Sekundenbruchteilen</title>
  917. <para>
  918. Viele Methoden unterstützen es, Werte relativ zu einer <classname>Zend_Date</classname>
  919. Instanz zu erhalten.
  920. </para>
  921. <table id="zend.date.others.fractions.table">
  922. <title>Methoden zur Datumsausgabe</title>
  923. <tgroup cols="2">
  924. <thead>
  925. <row>
  926. <entry>Methode</entry>
  927. <entry>Erklärung</entry>
  928. </row>
  929. </thead>
  930. <tbody>
  931. <row>
  932. <entry>
  933. <para>
  934. <emphasis><methodname>getFractionalPrecision()</methodname></emphasis>
  935. </para>
  936. </entry>
  937. <entry>Gibt die Genauigkeit des Sekundenbruchteils zurück</entry>
  938. </row>
  939. <row>
  940. <entry>
  941. <para>
  942. <emphasis><methodname>setFractionalPrecision()</methodname></emphasis>
  943. </para>
  944. </entry>
  945. <entry>Setzt die Genauigkeit des Sekundenbruchteils</entry>
  946. </row>
  947. </tbody>
  948. </tgroup>
  949. </table>
  950. </sect2>
  951. <sect2 id="zend.date.other.sun">
  952. <title>Sonnenaufgang / Sonnenuntergang</title>
  953. <para>
  954. Drei Methoden geben Zugriff auf geographisch lokalisierte Informationen über die Sonne,
  955. was die Zeit für Sonnenaufgang und Sonnenuntergang beinhaltet.
  956. </para>
  957. <table id="zend.date.other.sun.table">
  958. <title>Gewöhnliche Methoden</title>
  959. <tgroup cols="2">
  960. <thead>
  961. <row>
  962. <entry>Methode</entry>
  963. <entry>Erklärung</entry>
  964. </row>
  965. </thead>
  966. <tbody>
  967. <row>
  968. <entry>
  969. <para>
  970. <emphasis><methodname>getSunrise($location)</methodname></emphasis>
  971. </para>
  972. </entry>
  973. <entry>Gibt die Zeit des Sonnenaufgangs dieses Datums zurück</entry>
  974. </row>
  975. <row>
  976. <entry>
  977. <para>
  978. <emphasis><methodname>getSunset($location)</methodname></emphasis>
  979. </para>
  980. </entry>
  981. <entry>Gibt die Zeit des Sonnenuntergangs dieses Datums zurück</entry>
  982. </row>
  983. <row>
  984. <entry>
  985. <para>
  986. <emphasis><methodname>getSunInfo($location)</methodname></emphasis>
  987. </para>
  988. </entry>
  989. <entry>Gibt ein Array mit den Sonnendaten des Datums zurück</entry>
  990. </row>
  991. </tbody>
  992. </tgroup>
  993. </table>
  994. </sect2>
  995. </sect1>