1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: 20766 -->
<sect1 id="zend.date.basic">
<title>Basis Methoden</title>
<para>
Der folgende Abschnitt zeigt die grundsätzliche Benutzung von
<classname>Zend_Date</classname> hauptsächlich durch Beispiele. Für dieses Handbuch sind
"Daten" immer implizit Kalenderdaten mit Zeiten, selbst wenn es nicht extra erwähnt ist und
umgekehrt. Der nicht angegebene Teil wird intern standardmäßig mit "null" angenommen. Das
bedeutet, dass ein Datum, welches kein Kalenderdatum aber eine Zeit von 12 Stunden hat und ein
anderes Datum, welches aus einem Kalenderdatum aber ohne Uhrzeit besteht zusammen zu einem
Datum führen, welches das Kalenderdatum enthält mit einer Uhrzeit von "Mittags".
</para>
<para>
Das Setzen eines Datums ohne Zeit bedeutet, dass die Zeit auf 00:00:00 gesetzt wird. Genauso
bedeutet das Setzen einer Zeit ohne Datum, dass intern das Datum auf 01.01.1970 inklusive
der Anzahl an Sekunden welche der vergangenen Stunden, Minuten und Sekunden der angegebenen
Zeit entsprechen, gesetzt wird . Normalerweise messen Personen Dinge von einem Startpunkt
aus, wie das Jahr 0 A.D. Trotzdem verwenden die meisten Softwaresysteme die erste Sekunde
des Jahres 1970 als Startpunkt und bezeichnen Zeiten als Abstand zum Zeitpunkt durch Zählen
der Anzahl an Sekunden, die seit diesem dem Startpunkt vergangen sind.
</para>
<sect2 id="zend.date.basic.creation">
<title>Aktuelles Datum</title>
<para>
Ohne jegliche Argumente bedeutet die Erstellung einer Instanz, dass ein Objekt mit dem
aktuellen Gebietsschema und dem aktuellen lokalen Datum zurückgegeben wird, durch
Verwendung von <acronym>PHP</acronym>'s <methodname>time()</methodname> Funktion um den
aktuellen <ulink url="http://en.wikipedia.org/wiki/Unix_Time">UNIX Zeitpunkt</ulink> für
das Objekt zu erhalten. Man muß sicherstellen, dass die <acronym>PHP</acronym> Umgebung
die richtige <link linkend="zend.date.setdefaulttimezone">Standardzeitzone</link>
gesetzt hat.
</para>
<example id="zend.date.basic.creation.example-1">
<title>Erstellen des aktuellen Datums</title>
<programlisting language="php"><![CDATA[
$date = new Zend_Date();
// Ausgabe des aktuellen Zeitpunktes
print $date;
]]></programlisting>
</example>
</sect2>
<sect2 id="zend.date.basic.functions">
<title>Zend_Date durch Beispiele</title>
<para>
Das Durchschauen der Basismethoden von <classname>Zend_Date</classname> ist ein guter
Weg für den Start für jene, welche noch nie mit Datumsobjekten in anderen Sprachen oder
Frameworks gearbeitet haben. Für jede anbei angeführte Methode gibt es ein kleines
Beispiel.
</para>
<sect3 id="zend.date.simple.functions.get">
<title>Ein Datum ausgeben</title>
<para>
Ein Datum in einem <classname>Zend_Date</classname> Objekt kann als Integer oder
lokalisierte Zeichenkette ausgegeben werden, indem man die
<methodname>get()</methodname> Methode verwendet. Es gibt viele Optionen, welche
in einem späteren Abschnitt beschrieben werden.
</para>
<example id="zend.date.simple.functions.get.example-1">
<title>get() - Ausgabe eines Datums</title>
<programlisting language="php"><![CDATA[
$date = new Zend_Date();
// Ausgabe des gewünschten Datums
print $date->get();
]]></programlisting>
</example>
</sect3>
<sect3 id="zend.date.simple.functions.set">
<title>Setzen eines Datums</title>
<para>
Die <methodname>set()</methodname> Methode verändert das Datum, welches im Objekt
gespeichert ist und gibt das endgültige Datum als Zeitpunkt (nicht als Objekt)
zurück. Auch hier gibt es viele Optionen, die in einem späteren Abschnitt beschrieben
werden.
</para>
<example id="zend.date.simple.functions.set.example-1">
<title>set() - Setzen eines Datums</title>
<programlisting language="php"><![CDATA[
$date = new Zend_Date();
// Setzen einer neuen Zeit
$date->set('13:00:00',Zend_Date::TIMES);
print $date->get(Zend_Date::W3C);
]]></programlisting>
</example>
</sect3>
<sect3 id="zend.date.simple.functions.add">
<title>Addieren und Subtrahieren von Daten</title>
<para>
Das Addieren von zwei Daten mit <methodname>add()</methodname> bedeutet
normalerweise das Addieren eines echtes Datums mit einem speziellen Zeitpunkt, der
einen Datumsabschnitt repräsentiert, wie z.B. 12 Stunden, wie im nachfolgenden
Beispiel gezeigt. Beide, <methodname>add()</methodname> und
<methodname>sub()</methodname> verwenden die gleichen Optionen wie
<methodname>set()</methodname>, welche später erklärt werden.
</para>
<example id="zend.date.simple.functions.add.example-1">
<title>add() - Addieren von Daten</title>
<programlisting language="php"><![CDATA[
$date = new Zend_Date();
// $date verändern durch addieren von 12 Stunden
$date->add('12:00:00', Zend_Date::TIMES);
echo "Datum über get() = ", $date->get(Zend_Date::W3C), "\n";
// benutze die magische __toString() Methode um
// Zend_Date's toString() aufzurufen
echo "Datum über toString() = ", $date, "\n";
]]></programlisting>
</example>
</sect3>
<sect3 id="zend.date.simple.functions.compare">
<title>Vergleichen von Daten</title>
<para>
Alle Basismethoden von <classname>Zend_Date</classname> können mit kompletten
Daten, welche in einem Objekt enthalten sind, arbeiten oder mit Datumsabschnitten,
wie dem Vergleich eines Minutenwertes in einem Datum mit einem absoluten Wert. Zum
Beispiel können die aktuellen Minuten der aktuellen Zeit mit einer speziellen Zahl
von Minuten verglichen werden durch Verwendung von
<methodname>compare()</methodname> wie im nachfolgenden Beispiel beschrieben.
</para>
<example id="zend.date.simple.functions.compare.example-1">
<title>compare() - Vergleichen von Daten</title>
<programlisting language="php"><![CDATA[
$date = new Zend_Date();
// Vergleichen von beiden Zeiten
if ($date->compare(10, Zend_Date::MINUTE) == -1) {
print "Diese Stunde ist weniger als 10 Minuten alt";
} else {
print "Diese Stunde ist mehr als 10 Minuten alt";
}
]]></programlisting>
</example>
<para>
Für einen einfachen Vergleich der Gleichheit kann <methodname>equals()</methodname>
verwendet werden, welches ein Boolean zurückgibt.
</para>
<example id="zend.date.simple.functions.compare.example-2">
<title>equals() - Identifizieren eines Datums oder Datumsabschnittes</title>
<programlisting language="php"><![CDATA[
$date = new Zend_Date();
// Vergleichen von zwei Zeiten
if ($date->equals(10, Zend_Date::HOUR)) {
print "Es ist 10Uhr. Zeit für die Arbeit.";
} else {
print "Es ist noch nicht 10Uhr. Du kannst weiterschlafen.";
}
]]></programlisting>
</example>
</sect3>
</sect2>
</sect1>
|