<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 14978 -->
<!-- Reviewed: no -->
<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 visa-versa. Der nicht angegebene Teil wird intern standardmäßig
        mit "null" angenommen. Das bedeutet das 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 das die Zeit auf 00:00:00 gesetzt wird. Genauso
        bedeutet das Setzen einer Zeit ohne Datum das Intern das Datum auf 01.01.1970 gesetzt wird inklusive der
        Anzahl an Sekunden welche der vergangenen Stunden, Minuten und Sekunden der angegebenen Zeit entsprechen.
        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 das ein Objekt mit dem aktuellen
            Gebietsschema und dem aktuellen lokalen Datum zurückgegeben wird, durch Verwendung von PHP's
            <code>time()</code> 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 das die PHP 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 role="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 Datums Objekten 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 <code>get()</code> Methode verwendet. Es gibt viele Optionen welche
                in einer späteren Sektion beschrieben werden.
            </para>

            <example id="zend.date.simple.functions.get.example-1">
                <title>get() - Ausgabe eines Datums</title>
                <programlisting role="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 <code>set()</code> 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
                einer späteren Sektion beschrieben werden.
            </para>

            <example id="zend.date.simple.functions.set.example-1">
                <title>set() - Setzen eines Datums</title>
                <programlisting role="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 <code>add()</code> 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, <code>add()</code> und <code>sub()</code>
                verwenden die gleichen Optionen wie <code>set()</code>, welche später erklärt werden.
            </para>

            <example id="zend.date.simple.functions.add.example-1">
                <title>add() - Addieren von Daten</title>
                <programlisting role="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 Basis Methoden 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 <code>compare()</code> wie im nachfolgenden Beispiel beschrieben.
            </para>

            <example id="zend.date.simple.functions.compare.example-1">
                <title>compare() - Vergleichen von Daten</title>
                <programlisting role="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 <code>equals()</code> 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 role="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>
<!--
vim:se ts=4 sw=4 et:
-->
