Index: Zend_Date-Additional.xml =================================================================== --- Zend_Date-Additional.xml (revision 20208) +++ Zend_Date-Additional.xml (working copy) @@ -1,14 +1,14 @@ - + Funktionierende Beispiele - In diesem Kapitel werden wir verschiedene zusätzliche Funkionen beschreiben welche auch - durch Zend_Date verfügbar sind. Natürlich haben alle beschriebene - Funktionen auch Beispiele um die Arbeitsweise, und die einfache API für - die richtige Benutzung von Ihnen, zu zeigen. + In diesem Kapitel werden verschiedene zusätzliche Funkionen beschreiben, welche auch durch + Zend_Date verfügbar sind. Natürlich sind für alle beschriebenen + Funktionen auch Beispiele vorhanden, um die Arbeitsweise und die einfache + API für die richtige Benutzung zu zeigen. @@ -16,44 +16,45 @@ Normalerweise werden die meisten Daten als Zeichenketten übergeben. Aber das Problem - mit Zeichenketten ist das man nicht sicher sein kann ob eine Zeichenkette ein echtes + mit Zeichenketten ist, dass man nicht sicher sein kann, ob eine Zeichenkette ein echtes Datum enthält. Hierfür gibt es in Zend_Date eine eigene statische Funktion um Datums-Zeichenketten zu prüfen. Zend_Locale hat eine eigene Funktion - getDate($date, $locale) welche ein Datum analysiert und + getDate($date, $locale), welche ein Datum analysiert und die gültigen normalisierten Datumsabschnitte zurück gibt. Ein Monatsname wird zum - Beispiel erkannt und anschließend nur die Nummer des Monats zurück gegeben. Aber da - Zend_Locale nichts über Daten weiß, da es eine Klasse zum - Normalisieren und Lokalisieren ist, haben wir eine eigene Funktion - isDate($date) integriert welche das für uns prüft. + Beispiel erkannt und anschließend nur die Nummer des Monats zurück gegeben. Da + Zend_Locale lediglich eine Klasse zum Normalisieren und + Lokalisieren ist und somit keine Kenntnis über die Daten hat, wurde die Funktion + isDate($date) integriert, welche dies prüfen kann. isDate($date, $format, $locale) nimmt bis zu drei Parameter - entgegen und benötigt mindestens einen Parameter. Deshalb ist alles was wir für das - Prüfen eines Datums benötigen natürlich das Datum selbst als Zeichenkette. Der zweite - Parameter kann das Format sein, in welchem das Datum erwartet wird. Wenn kein Format - angegeben wurde, wird das Standardformat des verwendeten Gebietsschemas benutzt. Für - Details darüber wie Formate aussehen müssen kann im Kapitel über + entgegen und benötigt mindestens einen Parameter. Deshalb ist alles, was für die Prüfung + eines Datums benötigt wird, das Datum selbst als Zeichenkette. Der zweite Parameter kann + das Format sein, in welchem das Datum erwartet wird. Wenn kein Format angegeben wurde, + wird das Standardformat des verwendeten Gebietsschemas benutzt. Details darüber, wie + Formate aussehen müssen, sind im Kapitel über selbst definierte Formate - nachgeschaut werden. + nachzulesen. - Der dritte Parameter ist auch optional genauso wie der zweite Parameter und kann - verwendet werden um ein Gebietsschema anzugeben. Das gebietsschema wird benötigt um - Monats- und Wochentagsnamen zu normalisieren. Mit dem dritten Parameter sind wir also in - der Lage Daten zu erkennen wie '01.Jänner.2000' oder - '01.January.2000' abhängig von dem angegebenen Gebietsschema. + Der dritte Parameter ist, wie schon der zweite Parameter, optional und kann für die + Angabe eines Gebietsschemas verwendet werden. Das Gebietsschema wird zur Normalisierung + von Monats- und Wochentagsnamen benötigt. Mit der Angabe des dritten Parameters ist es + also möglich, Daten wie '01.Jänner.2000' oder + '01.January.2000' abhängig vom angegebenen Gebietsschema, zu + erkennen. - isDate() prüft natürlich auch ob ein Datum existiert. + isDate() prüft auch ob ein Datum existiert. Zend_Date selbst prüft die Daten nicht. Deshalb ist es möglich ein Datum wie zum Beispiel '31.Februar.2000' mit - Zend_Date zu erstellen weil Zend_Date das - Datum automatisch korrigiert und ein gültiges Datum zurück gibt. In unserem Fall den - '03.März.2000'. Auf der anderen Seite führt + Zend_Date zu erstellen, da Zend_Date das + Datum automatisch korrigiert und eine gültige Datumsangabe zurück gibt. In unserem Fall + den '03.März.2000'. Auf der anderen Seite führt isDate() diese Prüfung durch und gibt beim '31.Februar.2000' FALSE zurück, weil sie weiß das dieses Datum unmöglich ist. @@ -94,19 +95,19 @@ Sonnenaufgang und Sonnenuntergang - Zend_Date beinhaltet auch Funktionen um Informationen von der - Sonne zu erhalten. Oft ist es notwendig die Zeit für Sonnenaugang oder Sonnenuntergang + Zend_Date beinhaltet auch Funktionen um Informationen zur + Sonne zu erhalten. Oft ist es notwendig, die Zeit für Sonnenaugang oder Sonnenuntergang für einen bestimmten Tag zu erhalten. Das ist mit Zend_Date sehr - einfach weil nur der gewünschte Tag angegeben werden muß, und zusätzlich die Ortsangabe - für den Sonnenaufgang oder Sonnenuntergang berechnet werden soll. + einfach, da nur der gewünschte Tag und die Ortsangabe für den Sonnenaufgang oder + Sonnenuntergang angegeben werden muss. - Da die meisten Personen die genaue Ortsangabe Ihrer Stadt nicht kennen haben wir auch - eine Helferklasse spendiert die für etwa 250 Haupt- und Großstädte der ganzen Welt die - Daten der Ortsangaben bereithält. Die meisten Personen können Städte in Ihrer näheren - Umgebung benutzen, da die Differenz für Ortsangaben welche nahe beineinander liegen nur - in Sekunden gemessen werden kann. + Da die meisten Personen die genaue Ortsangabe Ihrer Stadt nicht kennen, wird eine + eine Helferklasse bereitgestellt, die für etwa 250 Haupt- und Großstädte der ganzen Welt + die Daten der Ortsangaben bereithält. Die meisten Personen können Städte in Ihrer + näheren Umgebung benutzen, da die Differenz für Ortsangaben, welche nahe beineinander + liegen, nur in Sekunden gemessen werden kann. @@ -127,11 +128,11 @@ Die Ortsangabe selbst erhält man mit der Funktion Zend_Date_Cities::city(). Sie akzeptiert den Namen einer Stadt wie durch die Funktion Zend_Date_Cities::getCityList() - angegeben und optional als zweiten Parameter den zu setzenden Horizont. + angegeben und optional als zweiten Parameter für den zu setzenden Horizont. - Es gibt 4 vordefinierte Horizonte welche mit einer Ortsangabe benutzt werden können um + Es gibt 4 vordefinierte Horizonte, welche mit einer Ortsangabe benutzt werden können, um den genauen Zeitpunkt von Sonnenauf- und -untergang zu erhalten. Der '$horizon' Parameter ist in allen Funktionen immer optional. Wenn er nicht gesetzt wird, wird der 'effective' Horizont benutzt. @@ -199,12 +200,12 @@ - Da nun alle benötigten Daten angegeben werde können ist der nächste Schritt die - Erstellung eines Zend_Date Objekts mit dem Tag für welchen + Da nun alle benötigten Daten angegeben werden können, ist der nächste Schritt die + Erstellung eines Zend_Date Objekts mit dem Tag, für welchen Sonnenauf- oder -untergang berechnet werden sollen. Für die Berechnung stehen 3 Funktionen bereit. Die Berechnung des Sonnenaufganges ist mit 'getSunset()', des Sonnenuntergangs mit - 'getSunrise()' und alle möglichen Informationen welche die + 'getSunrise()' und alle möglichen Informationen, welche die Sonne betreffen mit 'getSunInfo()' möglich. Nach der Berechnung wird das Zend_Date Objekt mit der berechneten Zeit zurückgegeben. @@ -238,35 +239,35 @@ Zeitzonen sind genauso wichtig wie die Datumsangaben selbst. Es gibt einige Zeitzonen - abhängig davon wo auf der Welt der Benutzer lebt. Deshalb bedeutet das Arbeiten mit - Daten auch immer das eine gültige Zeitzone gesetzt ist. Das klingt eventuell + abhängig vom Aufenthaltsort des Nutzers. Deshalb bedeutet das Arbeiten mit + Daten auch immer, dass eine gültige Zeitzone gesetzt ist. Das klingt eventuell kompliziert, ist aber viel einfacher als erwartet. Wie schon im ersten Kapitel von - Zend_Date erwähnt muß immer eine Standardzeitzone ersetzt werden. - Entweder durch php.ini oder durch Definition in der Bootstrap - Datei. + Zend_Date erwähnt, muss immer eine Standardzeitzone gesetzt + werden. Dies kann entweder in der php.ini oder durch Definition in + der Bootstrap Datei durchgeführt werden. - Ein Zend_Date Objekt speichert natürlich die aktuelle Zeitzone. + Ein Zend_Date Objekt speichert die aktuelle Zeitzone. Selbst wenn die Zeitzone nach der Erstellung des Objektes geändert wird, merkt sich das - Objekt die originale Zeitzone und arbeitet mit Ihr. Es ist also nicht notwendig die + Objekt die originale Zeitzone und arbeitet mit dieser. Es ist also nicht notwendig, die Zeitzone im Code mithilfe von PHP Funktionen zu ändern. - Zend_Date hat zwei eingebaute Funktionen die es ermöglichen damit - zu Arbeiten. + Zend_Date hat zwei eingebaute Funktionen, die es ermöglichen + damit zu arbeiten. getTimezone() gibt die aktuell gesetzte Zeitzone des - Zend_Date Objektes zurück. Man sollte in Erinnerung behalten das - Zend_Date nicht mit den PHP Internas gekoppelt - ist. Deshalb ist die zurückgegebene Zeitzone nicht die des PHP - Skripts sondern jene des Objektes. setTimezone($zone) ist die - zweite Funktion und ermöglicht es eine neue Zeitzone für - Zend_Date zu setzen. Eine angegebene Zeitzone wird immer geprüft. - Wenn diese nicht existiert wird eine Ausnahme geworfen. Zusätzlich kann die Zeitzone des - aktuellen Skripts oder des Systems für das Datumsobjekt gesetzt werden indem - setTimezone() ohne den Parameter zone aufgerufen wird. Das wird - auch automatisch gemacht wenn das Datumsobjekt erstellt wird. + Zend_Date Objektes zurück. Man sollte in Erinnerung behalten, + dass Zend_Date nicht mit den PHP Internas + gekoppelt ist. Deshalb ist die zurückgegebene Zeitzone nicht die des + PHP Skripts, sondern jene des Objektes. + setTimezone($zone) ist die zweite Funktion und ermöglicht es + eine neue Zeitzone für Zend_Date zu setzen. Eine angegebene + Zeitzone wird immer geprüft. Wenn diese nicht existiert, wird eine Ausnahme geworfen. + Zusätzlich kann die Zeitzone des aktuellen Skripts oder des Systems für das Datumsobjekt + gesetzt werden, indem setTimezone() ohne den Parameter zone + aufgerufen wird. Das wird auch automatisch gemacht, wenn das Datumsobjekt erstellt wird. @@ -274,8 +275,8 @@ Zend_Date nimmt immer die aktuelle Zeitzone für das Erstellen - eines Objektes wie in den ersten Zeilen des Beispiels gezeigt. Das Ändern der Zeitzone + eines Objektes, wie in den ersten Zeilen des Beispiels gezeigt. Das Ändern der Zeitzone für ein erstelltes Objekt hat einen Effekt auf das Datum selbst. Daten sind immer relativ zu einer Zeitzone. Das Ändern der Zeitzone für ein Zend_Date Objekt ändert nicht die Zeit des - Zend_Date Objektes selbst. Man muß sich in Erinnerung halten das - Daten intern immer als Zeitpunkte und in der GMT gespeichert werden. - Eine Zeitzone bedeutet also wieviele Stunden subtrahiert oder addiert werden müssen um - die aktuelle globale Zeit für die eigene Zeitzone und Region er erhalten. + Zend_Date Objektes selbst. Man muß sich in Erinnerung halten, + dass Daten intern immer als Zeitpunkte und in der GMT gespeichert + werden. Eine Zeitzone bedeutet also wieviele Stunden subtrahiert oder addiert werden + müssen, um die aktuelle globale Zeit für die eigene Zeitzone und Region zu erhalten. @@ -321,8 +322,8 @@