Zend_Date-Overview.xml 56 KB

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