betz            Mon Mar 25 08:26:28 2002 EDT

  Modified files:              
    /phpdoc/de/functions        datetime.xml 
  Log:
  sync to en 1.69
  
Index: phpdoc/de/functions/datetime.xml
diff -u phpdoc/de/functions/datetime.xml:1.24 phpdoc/de/functions/datetime.xml:1.25
--- phpdoc/de/functions/datetime.xml:1.24       Sat Feb  2 10:33:59 2002
+++ phpdoc/de/functions/datetime.xml    Mon Mar 25 08:26:28 2002
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
+<!-- EN-Revision: 1.69 Maintainer: betz Status: ready -->
  <reference id="ref.datetime">
   <title>Datums- und Zeit-Funktionen</title>
   <titleabbrev>Datum/Zeit</titleabbrev>
@@ -15,15 +16,15 @@
    <refsect1>
     <title>Beschreibung:</title>
      <methodsynopsis>
-      <type>int</type><methodname>checkdate</methodname>
+      <type>bool</type><methodname>checkdate</methodname>
       <methodparam><type>int</type><parameter>Monat</parameter></methodparam>
       <methodparam><type>int</type><parameter>Tag</parameter></methodparam>
       <methodparam><type>int</type><parameter>Jahr</parameter></methodparam>
      </methodsynopsis>
     <para>
-     Gibt &true; / wahr zurück, wenn das angegebene Datum gültig ist,
-     sonst wird &false; / falsch zurück gegeben. Prüft die Gültigkeit der
-     angebenen Datumswerte. Ein Datum wird als gültig angesehen, wenn
+     Ist das angegebene Datum gültig wird &true; zurückgegeben, ansonsten
+     &false;. Prüft die Gültigkeit der angebenen Datumswerte. Ein Datum wird 
+     als gültig angesehen, wenn
      <itemizedlist>
       <listitem>
        <simpara>
@@ -37,12 +38,16 @@
       </listitem>
       <listitem>
        <simpara>
-        der Tag innerhalb der erlaubten Werte des angegebenen Monats
-        ist. Schaltjahre werden berücksichtigt.
+        der <parameter>Tag</parameter> innerhalb der erlaubten Werte des angegebenen
+        <parameter>Monat</parameter>s ist. Schalt<parameter>Jahre</parameter>
+        werden berücksichtigt.
        </simpara>
       </listitem>
      </itemizedlist>
     </para>
+    <para>
+     Siehe auch <function>mktime</function> und <function>strtotime</function>.
+    </para>
    </refsect1>
   </refentry>
 
@@ -55,190 +60,219 @@
     <title>Beschreibung:</title>
      <methodsynopsis>
       <type>string</type><methodname>date</methodname>
-      <methodparam><type>string</type><parameter>format</parameter></methodparam>
-      <methodparam 
choice="opt"><type>int</type><parameter>timestamp</parameter></methodparam>
+      <methodparam><type>string</type><parameter>Format</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>int</type><parameter>Timestamp</parameter></methodparam>
      </methodsynopsis>
     <para>
      Gibt einen formatierten String anhand eines vorzugebenden Musters
      zurück. Dabei wird entweder der angegebene
-     <parameter>timestamp</parameter> oder die gegenwärtige lokale
-     Zeit berücksichtigt, wenn kein timestamp gegeben ist.
+     <parameter>Timestamp</parameter> oder die gegenwärtige lokale
+     Zeit berücksichtigt, wenn kein Timestamp angegegeben wird.
     </para>
+    <note>
+     <para>
+      Der gültige Bereich eines Timestamp liegt typischerweise zwischen
+      Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT.
+      (Das entspricht den minimalen und maximalen Werten für einen 
+      vorzeichenbehafteten 32-Bit Integer.)
+      </para>
+      <para>
+       Um einen Timestamp aus aus einem Datums-String zu erzeugen, können Sie
+       die Funktion <function>strtotime</function> benutzen. Zusätzlich bieten
+       einige Datenbanken Funktionen, um Ihre Datumsfromate in Timestamps
+       umzuwandeln (siehe die MySQL-Funktion UNIX_TIMESTAMP).
+      </para>
+     </note>
     <para>
      Die folgenden Platzhalter werden zur Formatierung benutzt:
      <itemizedlist>
       <listitem>
        <simpara>
-       a - "am" oder "pm"
+        a - "am" oder "pm"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       A - "AM" oder "PM"
+        A - "AM" oder "PM"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       B - Swatch-Internet-Zeit
+        B - Swatch-Internet-Zeit
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       d - Tag des Monats, 2-stellig mit führender &null;: "01" bis 
-  "31"
+        d - Tag des Monats, 2-stellig mit führender Null: "01" bis "31"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       D - Tag der Woche als 3 Buchstaben, z.B. "Fri"
+        D - Tag der Woche als 3 Buchstaben, z.B. "Fri"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       F - Monat als ganzes Wort, z.B "January"
+        F - Monat als ganzes Wort, z.B "January"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       g - Stunde im 12-Stunden-Format ohne führende &null;: "1" bis
-       "12"
+        g - Stunde im 12-Stunden-Format, ohne führende Null: "1" bis "12"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       G - Stunde im 24-Stunden-Format ohne führende &null;: "0" bis
-       "23"
+        G - Stunde im 24-Stunden-Format, ohne führende Null: "0" bis "23"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       h - Stunde im 12-Stunden-Format: "01" bis "12"
+        h - Stunde im 12-Stunden-Format: "01" bis "12"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       H - Stunde im 24-Stunden-Format: "00" bis "23"
+        H - Stunde im 24-Stunden-Format: "00" bis "23"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       i - Minuten: "00" bis "59"
+        i - Minuten: "00" bis "59"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       I (großes 'i') - "1" bei Sommerzeit, sonst "0"
+        I (großes 'i') - "1" bei Sommerzeit, sonst "0"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       j - Tag des Monats ohne führende &null;: "1" bis "31"
+        j - Tag des Monats ohne führende Null: "1" bis "31"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       l - (kleines 'L') ausgeschriebener Tag der Woche,
-       z.B. "Friday"
+        l - (kleines 'L') ausgeschriebener Tag der Woche, z.B. "Friday"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       L - boolscher Wert für Schaltjahre: "0" oder "1"
+        L - boolscher Wert für Schaltjahre: "0" oder "1"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       m - Monat: "01" to "12"
+        m - Monat: "01" to "12"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       n - Monat ohne führende &null;: "1" bis "12"
+        M - Monat als 3 Buchstaben, z.B. "Jan"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       M - Monat als 3 Buchstaben, z.B. "Jan"
+        n - Monat ohne führende Null: "1" bis "12"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       O - Zeitdifferenz zur Greenwich Zeit in Stunden (z.B. +0200)
+        O - Zeitdifferenz zur Greenwich Zeit in Stunden (z.B. +0200)
        </simpara>
       </listitem>     
       <listitem>
        <simpara>
-       r - Nach RFC 822 formattiertes Datum; z.B. 
-       "Sun, 7 Oct 2001 14:56:02 +0200" (seit PHP 4.0.4)
+        r - Nach RFC 822 formattiertes Datum; z.B.:
+        "Sun, 7 Oct 2001 14:56:02 +0200" (seit PHP 4.0.4)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       s - Sekunden: "00" bis "59"
+        s - Sekunden: "00" bis "59"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       S - Anhang der englischen Aufzählung, 2 Buchstaben, z.B. "th"
-       [bei 4 für fourth], "nd" [bei 2 für second]
+        S - Anhang der englischen Aufzählung, 2 Buchstaben, z.B. "th"
+        [bei 4 für fourth], "nd" [bei 2 für second]
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       t - Anzahl der Tage des angegebenen Monats: "28" bis "31"
+        t - Anzahl der Tage des angegebenen Monats: "28" bis "31"
        </simpara>
       </listitem>
-         <listitem>
+     <listitem>
        <simpara>
-    T - Zeitzoneneinstellung des Rechners, z.B. "MDT"
+       T - Zeitzoneneinstellung des Rechners, z.B. "MDT"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       U - Sekunden seit Beginn der UNIX-Epoche (1.1.1970)
+        U - Sekunden seit Beginn der UNIX-Epoche (1.1.1970)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       w - Wochentag beginnend mit "0" (Sonntag) bis "6" (Samstag)
+        w - Wochentag numersich, beginnend mit "0" (Sonntag) bis "6" (Samstag)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       W - ISO-8601 Wochennummer des Jahres (Woche beginnt mit Montag)
-              (seit PHP 4.1.0)
+        W - ISO-8601 Wochennummer des Jahres (Woche beginnt mit Montag)
+        (seit PHP 4.1.0)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       Y - Jahr als vierstellige Zahl, z.B. "1999"
+        y - Jahr als zweistellige Zahl, z.B. "99"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       y - Jahr als zweistellige Zahl, z.B. "99"
+        Y - Jahr als vierstellige Zahl, z.B. "1999"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       z - Tag des Jahres: "0" bis "365"
+        z - Tag des Jahres: "0" bis "365"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       Z - Offset der Zeitzone gegen GTM ("-43200" bis "43200") in
-       Minuten
+        Z - Offset der Zeitzone gegen GTM ("-43200" bis "43200") in
+        Sekunden. Der Offset für Zeitzone West nach UTC ist immer negativ
+        und für Zeitzone Ost nach UTC immer positiv.
        </simpara>
       </listitem>
      </itemizedlist>
-     Nicht definierte Zeichen werden unverändert zurück gegeben.  Das
-     "Z"-Format gibt "0" zurück beim Gebrauch von
-     <function>gmdate</function>.
+     Nicht definierte Zeichen werden unverändert zurück gegeben. Das
+     "Z"-Format gibt beim Gebrauch von <function>gmdate</function> immer
+     "0" zurück.
+    </para>
+    <para>
      <example>
       <title><function>date</function> Beispiel</title>
       <programlisting role="php">
+<![CDATA[
 print (date("l dS of F Y h:i:s A"));
 print ("July 1, 2000 is on a " . date ("l", mktime(0,0,0,7,1,2000)));
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <para>
+     Möchten Sie verhindern, dass ein definiertes Zeichen im Formatstring
+     ersetzt wird, sollten Sie dieses Zeichen mit einem vorangestellten
+     Backslash escapen. Ist das Zeichen mit dem Backslash bereits eine
+     spezielle Zeichenfolge, müssen Sie diesen Backslash ebenso escapen.
+     <example>
+      <title>Escaping von Zeichen in <function>date</function></title>
+      <programlisting role="php">
+<![CDATA[
+echo date("l \\t\h\e jS"); // gibt etwas ähnliches aus wie 'Saturday the 8th'
+]]>
       </programlisting>
      </example>
     </para>
@@ -249,12 +283,50 @@
      <example>
       <title>
        <function>date</function> und <function>mktime</function>
-       Beispiel
+       Beispiele
       </title>
       <programlisting role="php">
-$morgen  = mktime(0, 0, 0, date ("m") , date ("d")+1, date("Y"));
-$letztermonat = mktime(0, 0, 0, date("m")-1,date("d"), date("Y"));
+<![CDATA[
+$morgen        = mktime(0, 0, 0, date ("m") , date ("d")+1, date("Y"));
+$letztermonat  = mktime(0, 0, 0, date("m")-1,date("d"), date("Y"));
 $naechstesjahr = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
+]]>
+      </programlisting>
+     </example>
+     <note>
+      <para>
+       Dieses Vorgehen kann zu verlässlicheren Ergebnissen führen, als simples
+       Addieren oder Subtrahieren der Anzahl von Sekunden in Tagen oder Monaten
+       zu einem Timestamp, da Sommer- und Winterzeit zu berücksichtigen ist.
+     </para>
+     </note>
+    </para>
+    <para>
+     Es folgen einige Beispiele zur <function>date</function> Formatierung.
+     Beachten Sie, dass Sie alle anderen Zeichen escapen sollten, da alle
+     Zeichen, die im Augenblick eine spezielle Beduetung haben unerwünschte
+     Resultate liefern. Bei allen weiteren Zeichen kann es durchaus möglich
+     sein, dass diesen in zukünftigen PHP-Versionen eine Bedeutung zukommt.
+     Beim escapen sollten Sie darauf achten einfache Anführungszeichen
+     benutzen, damit Zeichenfolgen wie zum Beispiel \n zu keinem
+     Zeilenumbruch führen.
+     <example>
+      <title>
+       <function>date</function> Formatierungen
+      </title>
+      <programlisting role="php">
+<![CDATA[
+/* Today is March 10th, 2001, 5:16:18 pm */
+$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
+$today = date("m.d.y");                         // 03.10.01
+$today = date("j, n, Y");                       // 10, 3, 2001
+$today = date("Ymd");                           // 20010310
+$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 
+Fripm01
+$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
+$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
+$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
+$today = date("H:i:s");                         // 17:16:17
+]]>
       </programlisting>
      </example>
     </para>
@@ -265,8 +337,9 @@
      nutzen.
     </para>
     <para>
-     Siehe auch <function>gmdate</function> und
-     <function>mktime</function>.
+     Siehe auch <function>getlastmod</function>, <function>gmdate</function>,
+     <function>mktime</function>, <function>strftime</function>
+     und <function>time</function>.
     </para>
    </refsect1>
   </refentry>
@@ -280,63 +353,79 @@
     <title>Beschreibung:</title>
      <methodsynopsis>
       <type>array</type><methodname>getdate</methodname>
-      <methodparam><type>int</type><parameter>timestamp</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>int</type><parameter>Timestamp</parameter></methodparam>
      </methodsynopsis>
     <para>
      Gibt ein assoziatives Array mit Datums- und Zeitangaben des
-     angegebenen Timestamp zurück.  Die Arrayelemente sind folgende:
+     angegebenen <parameter>Timestamp</parameter> zurück. Wird kein Timestamp
+     angegeben, wird die lokal gültige Zeit berücksichtigt. Die Arrayelemente
+     sind folgende:
      <itemizedlist>
       <listitem>
        <simpara>
-       "seconds" - Sekunden
+        "seconds" - Sekunden
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "minutes" - Minuten
+        "minutes" - Minuten
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "hours" - Stunden
+        "hours" - Stunden
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "mday" - Tag des Monats
+        "mday" - Tag des Monats
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "wday" - numerischer Tag der Woche
+        "wday" - numerischer Tag der Woche: von 0 als Sonntag bis 6 als Samstag
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "mon" - Monat als Zahl
+        "mon" - Monat als Zahl
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "year" - Jahr als Zahl
+        "year" - Jahr als Zahl
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "yday" - Tag des Jahres als Zahlwert, z.B. "299"
+        "yday" - Tag des Jahres als Zahlwert, z.B. "299"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "weekday" - ausgeschriebener Wochentag, z.B. "Friday"
+        "weekday" - ausgeschriebener Wochentag, z.B. "Friday"
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "month" - ausgeschriebener Monatsname, z.B. "January"
+        "month" - ausgeschriebener Monatsname, z.B. "January"
        </simpara>
       </listitem>
      </itemizedlist>
+     <example>
+      <title>
+       <function>getdate</function> Beispiel
+      </title>
+      <programlisting role="php">
+<![CDATA[
+$heute     = getdate(); 
+$monat     = $heute['month']; 
+$tag_monat = $heute['mday']; 
+$Jahr      = $heute['year']; 
+echo "$monat $tag_monat, $jahr";
+]]>
+      </programlisting>
+     </example>
     </para>
    </refsect1>
   </refentry>
@@ -354,27 +443,27 @@
      </methodsynopsis>
     <para>
      Es handelt sich um eine Schnittstelle zum Systemaufruf von
-     gettimeofday(2).  Die Zeitangaben werden als assoziatives Array
+     gettimeofday(2). Die Zeitangaben werden als assoziatives Array
      zurück gegeben. Folgende Arrayelemente sind vorhanden:
      <itemizedlist>
       <listitem>
        <simpara>
-       "sec" - Sekunden
+        "sec" - Sekunden
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "usec" - Microsekunden
+        "usec" - Microsekunden
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "minuteswest" - Minuten westlich von Greenwich
+        "minuteswest" - Minuten westlich von Greenwich
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "dsttime" - Art der Korrektur der Sommerzeit
+        "dsttime" - Art der Korrektur der Sommerzeit
        </simpara>
       </listitem>
      </itemizedlist>
@@ -385,17 +474,17 @@
   <refentry id="function.gmdate">
    <refnamediv>
     <refname>gmdate</refname>
-    <refpurpose>Formatiert eine GMT Zeitangabe</refpurpose>
+    <refpurpose>Formatiert eine GMT/CUT Zeit- Datumsangabe</refpurpose>
    </refnamediv>
    <refsect1>
     <title>Beschreibung:</title>
      <methodsynopsis>
       <type>string</type><methodname>gmdate</methodname>
-      <methodparam><type>string</type><parameter>format</parameter></methodparam>
-      <methodparam><type>int</type><parameter>timestamp</parameter></methodparam>
+      <methodparam><type>string</type><parameter>Format</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>int</type><parameter>Timestamp</parameter></methodparam>
      </methodsynopsis>
     <para>
-     Entspricht der <function>date</function> Funktion, ausser das als
+     Entspricht der <function>date</function> Funktion, ausser dass als
      Zeitangabe immer Greenwich Mean Time (GMT) zurück gegeben
      wird. Steht ihr System in Deutschland (GMT + 01:00) wird im
      Beispiel unten (1. Zeile) "Jan 01 1998 00:00:00" ausgegeben,
@@ -403,14 +492,16 @@
      <example>
       <title><function>gmdate</function> Beispiel</title>
       <programlisting role="php">
-echo date ("M d Y H:i:s", mktime (0,0,0,1,1,1998))."\n";
-echo gmdate("M d Y H:i:s", mktime (0,0,0,1,1,1998))."\n";
+<![CDATA[
+echo date ("M d Y H:i:s", mktime (0,0,0,1,1,1998));
+echo gmdate("M d Y H:i:s", mktime (0,0,0,1,1,1998));
+]]>
       </programlisting>
      </example>
     </para>
     <para>
      Siehe auch <function>date</function>, <function>mktime</function>
-     und <function>gmmktime</function>.
+     ,<function>gmmktime</function> und <function>strftime</function>.
     </para>
    </refsect1>
   </refentry>
@@ -419,7 +510,7 @@
    <refnamediv>
     <refname>gmmktime</refname>
     <refpurpose>
-     Gibt den UNIX timestamp (Zeitstempel) als GMT zurück
+     Gibt einen UNIX-Timestamp (Zeitstempel) als GMT zurück
     </refpurpose>
    </refnamediv>
    <refsect1>
@@ -428,7 +519,7 @@
       <type>int</type><methodname>gmmktime</methodname>
       <methodparam><type>int</type><parameter>Stunde</parameter></methodparam>
       <methodparam><type>int</type><parameter>Minute</parameter></methodparam>
-      <methodparam><type>int</type><parameter>Secunde</parameter></methodparam>
+      <methodparam><type>int</type><parameter>Sekunde</parameter></methodparam>
       <methodparam><type>int</type><parameter>Monat</parameter></methodparam>
       <methodparam><type>int</type><parameter>Tag</parameter></methodparam>
       <methodparam><type>int</type><parameter>Jahr</parameter></methodparam>
@@ -436,7 +527,7 @@
      </methodsynopsis>
     <para>
      Identisch zu <function>mktime</function>. Die angegebenen
-     Parameter werden aber als GMT-Datum/Zeit zurück gegeben.
+     Parameter werden aber als GMT-Datum/Zeit interpretiert.
     </para>
    </refsect1>
   </refentry>
@@ -445,33 +536,31 @@
    <refnamediv>
     <refname>gmstrftime</refname>
     <refpurpose>
-     Wandelt eine lokale Zeitangabe in GMT-Format um
+     Formatiert eine Datum-/Zeitangabe in GMT/CUT-Format entsprechend den
+     lokalen Einstellungen
     </refpurpose>
    </refnamediv>
    <refsect1>
     <title>Beschreibung:</title>
      <methodsynopsis>
       <type>string</type><methodname>gmstrftime</methodname>
-      <methodparam><type>string</type><parameter>format</parameter></methodparam>
-      <methodparam><type>int</type><parameter>timestamp</parameter></methodparam>
+      <methodparam><type>string</type><parameter>Format</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>int</type><parameter>Timestamp</parameter></methodparam>
      </methodsynopsis>
-    <note>
-     <para>
-      Erst ab Version 3.0.12
-     </para>
-    </note>
     <para>
      Bewirkt das gleiche wie <function>strftime</function> mit dem
      Unterschied, dass die GMT-Zeit zurück gegeben wird. In
      Deutschland (GMT + 01:00) wird im folgenden Beispiel bei strftime
-     "Dec 31 1998 00:00:00", bei gmstrftime dagegen "Dec 31 1998
+     "Dez 31 1998 00:00:00", bei gmstrftime dagegen "Dec 31 1998
      23:00:00" ausgegeben.
      <example>
       <title><function>gmstrftime</function> Beispiel</title>
       <programlisting role="php">
-setlocale ('LC_TIME', 'ge');
+<![CDATA[
+setlocale ('LC_TIME', 'de_DE');
 echo strftime ("%b %d %Y %H:%M:%S", mktime(0,0,0,12,31,98))."\n";
 echo gmstrftime ("%b %d %Y %H:%M:%S", mktime(0,0,0,12,31,98))."\n";
+]]>
       </programlisting>
      </example>
     </para>
@@ -490,12 +579,8 @@
     <title>Beschreibung:</title>
      <methodsynopsis>
       <type>array</type><methodname>localtime</methodname>
-      <methodparam choice="opt"><type>int</type><parameter>
-        timestamp
-       </parameter></methodparam>
-      <methodparam choice="opt"><type>bool</type><parameter>
-        is_associative
-       </parameter></methodparam>
+      <methodparam 
+choice="opt"><type>int</type><parameter>Timestamp</parameter></methodparam>
+      <methodparam 
+choice="opt"><type>bool</type><parameter>is_associative</parameter></methodparam>
      </methodsynopsis>
     <para>
      Die <function>localtime</function>-Funktion gibt ein Array
@@ -513,47 +598,47 @@
      <itemizedlist>
       <listitem>
        <simpara>
-       "tm_sec" - Sekunde
+        "tm_sec" - Sekunde
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "tm_min" - Minute
+        "tm_min" - Minute
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "tm_hour" - Stunde
+        "tm_hour" - Stunde
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "tm_mday" - Tag des Monats
+        "tm_mday" - Tag des Monats
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "tm_mon" - Monat des Jahres
+        "tm_mon" - Monat des Jahres, beginnt bei 0 für Januar
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "tm_year" - Jahr (nicht Y2K sicher)
+        "tm_year" - Jahr seit 1900
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "tm_wday" - Tag der Woche
+        "tm_wday" - Tag der Woche
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "tm_yday" - Tag des Jahres
+        "tm_yday" - Tag des Jahres
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       "tm_isdst" - für das Datum ist die Sommerzeit zu berücksichtigen
+        "tm_isdst" - für das Datum ist die Sommerzeit zu berücksichtigen
        </simpara>
       </listitem>
      </itemizedlist>
@@ -565,7 +650,7 @@
    <refnamediv>
     <refname>microtime</refname>
     <refpurpose>
-     Gibt den aktuellen UNIX Timestamp/Zeitstempel in Mikrosekunden
+     Gibt den aktuellen UNIX-Timestamp/Zeitstempel in Mikrosekunden
      zurück
     </refpurpose>
    </refnamediv>
@@ -583,6 +668,31 @@
      möglich, die den Systemaufruf gettimeofday() unterstützen.
     </para>
     <para>
+     Beide Teile des Strings werden in Sekunden zurückgegen.
+     <example>
+      <title><function>microtime</function> Beispiel</title>
+      <programlisting role="php">
+<![CDATA[
+function getmicrotime(){ 
+    list($usec, $sec) = explode(" ",microtime()); 
+    return ((float)$usec + (float)$sec); 
+    } 
+
+$time_start = getmicrotime();
+    
+for ($i=0; $i < 1000; $i++){
+    //mach nichts,1000 mal
+    }
+
+$time_end = getmicrotime();
+$time = $time_end - $time_start;
+
+echo "Nichts getan in $time Sekunden";
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <para>
      Siehe auch <function>time</function>.
     </para>
    </refsect1>
@@ -592,7 +702,7 @@
    <refnamediv>
     <refname>mktime</refname>
     <refpurpose>
-     Gibt den UNIX Timestamp/Zeitstempel für ein Datum zurück
+     Gibt den UNIX-Timestamp/Zeitstempel für ein Datum zurück
     </refpurpose>
    </refnamediv>
    <refsect1>
@@ -610,23 +720,23 @@
     <para>
      <emphasis>Warnung:</emphasis> Beachten sie die andersartige
      Anordnung der Argumente. Diese unterscheidet sich von der
-     Reihenfolge des UNIX-Befehls mktime().  Das ist eine häufige
+     Reihenfolge des UNIX-Befehls mktime(). Das ist eine häufige
      Fehlerursache in Scripts.
     </para>
     <para>
      Gibt den UNIX Timestamp/Zeitstempel an Hand der gegebenen
-     Argumente zurück.  Der Zeitstempel ist ein long-integer-Wert, der
-     die Anzahl der Sekunden zwischen der UNIX Epoche (01.01.1970) und
+     Argumente zurück. Der Zeitstempel ist ein long-integer-Wert, der
+     die Anzahl der Sekunden zwischen der UNIX Epoche (January 1 1970) und
      der angegebenen Zeit enthält.
     </para>
     <para>
      Einzelne Argumente können von rechts nach links weggelassen
-     werden.  Sie werden dann ersetzt mit den Werten der lokalen
+     werden. Sie werden dann ersetzt mit den Werten der lokalen
      Systemzeit bzw. des lokalen Systemdatums.
     </para>
     <para>
      <parameter>is_dst</parameter> kann bei Sommerzeit auf 1 gesetzt
-     werden.  0 bedeutet Winter-/Normalzeit, -1 (Vorgabewert)
+     werden. 0 bedeutet Winter-/Normalzeit, -1 (Vorgabewert)
      heisst, dass nicht bekannt ist, ob Sommer- oder Winterzeit
      herrscht.
     </para>
@@ -637,23 +747,25 @@
     </note>
     <para>
      <function>mktime</function> ist hilfreich bei Datumsberechnungen
-     und -überprüfungen, z.B. wird versucht, automatisch das korrekte
-     Datum zu berechnen. So wird in den folgenden Beispielen immer die
+     und -überprüfungen, da automatisch das korrekte Datum für ungültige
+     Angaben berechnet wird. So wird in den folgenden Beispielen immer die
      Zeichenkette "Jan-01-1998" ausgegeben.
      <example>
       <title><function>mktime</function> Beispiel</title>
       <programlisting>
+<![CDATA[
 echo date ("M-d-Y", mktime(0,0,0,12,32,1997));
 echo date ("M-d-Y", mktime(0,0,0,13,1,1997));
 echo date ("M-d-Y", mktime(0,0,0,1,1,1998));
 echo date ("M-d-Y", mktime(0,0,0,1,1,98));
+]]>
       </programlisting>
      </example>
-     <parameter>year</parameter> darf auch zweistellig angegeben
-     werden.  Werte von 0 bis 69 stehen dann für die Jahre 2000 bis
+     Das <parameter>Jahr</parameter> darf zwei- oder vierstellig
+     angegeben werden. Werte von 0 bis 69 stehen dann für die Jahre 2000 bis
      2069, und 70 bis 99 für die Jahre von 1970-1999 (auf Systemen,
      die time_t als 32Bit-Integer abbilden, liegt der gültige Bereich
-     für <parameter>year</parameter> zwischen 1902 und 2037).
+     für <parameter>Jahr</parameter> zwischen 1902 und 2037).
     </para>
     <para>
      Der letzte Tag eines gegebenen Monats kann als der Tag "0" des
@@ -666,13 +778,13 @@
 $lastday = mktime (0,0,0,3,0,2000);
 echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $lastday);
 
-$lastday=mktime(0,0,0,4,-31,2000);
+$lastday = mktime(0,0,0,4,-31,2000);
 echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $lastday);
       </programlisting>
      </example>
     </para>
     <simpara>
-     Datumsangaben, bei denen das Jahr, der Monat und Tag gleich &null;
+     Datumsangaben, bei denen das Jahr, der Monat und Tag gleich Null
      sind, werden als ungültig angesehen (ansonsten als 30.11.1999, was
      nicht gewollt sein kann).
     </simpara>
@@ -696,16 +808,15 @@
       <type>string</type><methodname>strftime</methodname>
       <methodparam><type>string</type><parameter>format</parameter></methodparam>
       <methodparam choice="opt"><type>int</type><parameter>
-        timestamp
+        Timestamp
        </parameter></methodparam>
      </methodsynopsis>
     <para>
-     Gibt einen String zurück, der den angegebenen
-     Formatierungs-Merkmalen entspricht.  Dabei wird der gegebene
-     Timestamp/Zeitstempel oder - falls dieser fehlt - die momentane
-     lokale Zeit benutzt. Monats- und Wochentagsname wird entsprechend
-     des per <function>setlocale</function> eingestellten Wertes
-     gesetzt.
+     Gibt einen String zurück, der den angegebenen Formatierungs-Merkmalen
+     entspricht. Dabei wird der gegebene <parameter>Timestamp</parameter>/
+     Zeitstempel oder - falls dieser fehlt - die momentane lokale Zeit benutzt.
+     Der Monats- und Wochentagsname wird entsprechend des per 
+     <function>setlocale</function> eingestellten Wertes gesetzt.
     </para>
     <para>
      Nachfolgend die im Formatierungsstring gültigen / bekannten
@@ -713,186 +824,208 @@
      <itemizedlist>
       <listitem>
        <simpara>
-       %a - abgekürzter Name des Wochentages, abhängig von der
-       gesetzten Umgebung
+        %a - abgekürzter Name des Wochentages, abhängig von der
+        gesetzten Umgebung
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %A - ausgeschriebener Name des Wochentages, abhängig von der
-       gesetzten Umgebung
+        %A - ausgeschriebener Name des Wochentages, abhängig von der
+        gesetzten Umgebung
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %b - abgekürzter Name des Monats, abhängig von der gesetzten
-       Umgebung
+        %b - abgekürzter Name des Monats, abhängig von der gesetzten
+        Umgebung
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %B - ausgeschriebener Name des Monats, abhängig von der
-       gesetzten Umgebung
+        %B - ausgeschriebener Name des Monats, abhängig von der
+        gesetzten Umgebung
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %c - Wiedergabewerte für Datum und Zeit, abhängig von der
-       gesetzten Umgebung
+        %c - Wiedergabewerte für Datum und Zeit, abhängig von der
+        gesetzten Umgebung
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %C - Jahrhundert (Jahr geteilt durch 100, gekürzt auf Integer,
-  Wertebereich 00 bis 99)
+        %C - Jahrhundert (Jahr geteilt durch 100, gekürzt auf Integer,
+        Wertebereich 00 bis 99)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %d - Tag des Monats als Zahl (Bereich 00 bis 31)
+        %d - Tag des Monats als Zahl (Bereich 00 bis 31)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %D - so wie %m/%d/%y
+        %D - so wie %m/%d/%y
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %e - Tag des Monats als Dezimal-Wert, einstelligen Werten wird
-       ein Leerzeichen voran gestellt (Wertebereich ´ 0´ bis ´31´)
+        %e - Tag des Monats als Dezimal-Wert, einstelligen Werten wird
+        ein Leerzeichen voran gestellt (Wertebereich ´ 0´ bis ´31´)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %h - so wie %b
+        %g - wie %G, aber ohne Jahrhundert.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %H - Stunde als Zahl im 24-Stunden-Format (Bereich 00 bis 23)
+        %G - Das vierstellige Jahr entsprechend der ISO Wochennummer (siehe %V).
+        Das gleiche Format und der gleiche Wert wie bei %Y. Besonderheit:
+        entspricht die ISO Wochennummer dem vorhergehenden oder folgendem
+        Jahr, wird dieses Jahr verwendet.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %I - Stunde als Zahl im 12-Stunden-Format (Bereich 01 bis 12)
+        %h - so wie %b
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %j - Tag des Jahres als Zahl (Bereich 001 bis 366)
+        %H - Stunde als Zahl im 24-Stunden-Format (Bereich 00 bis 23)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %m - Monat als Zahl (Bereich 01 bis 12)
+        %I - Stunde als Zahl im 12-Stunden-Format (Bereich 01 bis 12)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %M - Minute als Dezimal-Wert
+        %j - Tag des Jahres als Zahl (Bereich 001 bis 366)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %n - neue Zeile
+        %m - Monat als Zahl (Bereich 01 bis 12)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %p - entweder `am' oder `pm' (abhängig von der gesetzten
-       Umgebung) oder die entsprechenden Zeichenketten der gesetzten
-       Umgebung
+        %M - Minute als Dezimal-Wert
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %r - Zeit in "am"- oder "pm"-Formatierung
+        %n - neue Zeile
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %R - Zeit in der 24-Stunden-Formatierung
+        %p - entweder `am' oder `pm' (abhängig von der gesetzten
+        Umgebung) oder die entsprechenden Zeichenketten der gesetzten
+        Umgebung
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %S - Sekunden als Dezimal-Wert
+        %r - Zeit im Format a.m. oder p.m.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %t - Tabulator
+        %R - Zeit in der 24-Stunden-Formatierung
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %T - aktuelle Zeit, genau wie %H:%M:%S
+        %S - Sekunden als Dezimal-Wert
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %u - Tag der Woche als Dezimal-Wert [1,7], dabei ist 1 der Montag
+        %t - Tabulator
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %U - Nummer der Woche des aktuellen Jahres als Dezimal-Wert,
-  beginnend mit dem    ersten Sonntag als erstem Tag der ersten Woche
+        %T - aktuelle Zeit, genau wie %H:%M:%S
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %V - Kalenderwoche (nach ISO 8601:1988) des aktuellen Jahres.
-       Als Dezimal-Zahl mit dem Wertebereich 01 bis 53, wobei die
-       Woche 01 die erste Woche mit mindestens 4 Tagen im aktuellen
-       Jahr ist. Die Woche beginnt montags (nicht sonntags)
+        %u - Tag der Woche als Dezimal-Wert [1,7], dabei ist 1 der Montag.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %w - Wochentag als Dezimal-Wert, Sonntag ist 0
+        %U - Nummer der Woche des aktuellen Jahres als Dezimal-Wert,
+        beginnend mit dem ersten Sonntag als erstem Tag der ersten Woche.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %W - Nummer der Woche des aktuellen Jahres, beginnend mit dem
-       ersten Montag als erstem Tag der ersten Woche
+        %V - Kalenderwoche (nach ISO 8601:1988) des aktuellen Jahres.
+        Als Dezimal-Zahl mit dem Wertebereich 01 bis 53, wobei die
+        Woche 01 die erste Woche mit mindestens 4 Tagen im aktuellen
+        Jahr ist. Die Woche beginnt Montags (nicht Sonntags).(Benutzen Sie
+        %G or %g für die Jahreskomponente die der Wochennummer für den
+        gegebenen Timestamp entspricht.)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %x - bevorzugte Datumswiedergabe (ohne Zeit), abhängig von der
-       gesetzten Umgebung
+        %w - Wochentag als Dezimal-Wert, Sonntag ist 0
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %X - bevorzugte Zeitwiedergabe (ohne Datum), abhängig von der
-       gesetzten Umgebung
+        %W - Nummer der Woche des aktuellen Jahres, beginnend mit dem
+        ersten Montag als erstem Tag der ersten Woche.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %y - Jahr als 2-stellige-Zahl (Bereich 00 bis 99)
+        %x - bevorzugte Datumswiedergabe (ohne Zeit), abhängig von der
+        gesetzten Umgebung.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %Y - Jahr als 4-stellige-Zahl
+        %X - bevorzugte Zeitwiedergabe (ohne Datum), abhängig von der
+        gesetzten Umgebung.
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %Z - Zeitzone
+        %y - Jahr als 2-stellige-Zahl (Bereich 00 bis 99)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
-       %% - ein %-Zeichen
+        %Y - Jahr als 4-stellige-Zahl
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        %Z - Zeitzone, Name, oder eine Abkürzung
+       </simpara>
+      </listitem>
+      <listitem>
+       <simpara>
+        %% - ein %-Zeichen
        </simpara>
       </listitem>
      </itemizedlist>
+     <note>
+      <para>
+       Es ist durchaus möglich, dass Ihre C-Bibliothek nicht alle angegebenen
+       Formatierungszeichen erkennt. In diesem Fall werden diese Zeichen von
+       der PHP-Funktion <function>strftime</function> nicht unterstützt.
+      </para>
+     </note>
      <example>
       <title><function>strftime</function> Beispiel</title>
       <programlisting role="php">
@@ -906,12 +1039,13 @@
 print (strftime ("%A.\n"));
       </programlisting>
      </example>
-      Diese Beispiel funktioniert, wenn sie die jeweilige Umgebung in
-      ihrem System eingestellt haben.
+      Diese Beispiele funktionieren nur, wenn auf Ihrem System die entsprechenden
+      Locale-Codes installiert sind.
      </para>
     <para>
      Siehe auch <function>setlocale</function> und
-     <function>mktime</function>.
+     <function>mktime</function> und die <ulink url="&spec.strftime;">
+     Open Group Spezifikation von <function>strftime</function></ulink>.
     </para>
    </refsect1>
   </refentry>
@@ -944,7 +1078,7 @@
     <refname>strtotime</refname>
     <refpurpose>
      Wandelt ein beliebiges Datum (englisches Format) in einen
-     Unix-Zeitstempel (timestamp) um
+     Unix-Zeitstempel (Timestamp) um.
     </refpurpose>
    </refnamediv>
    <refsect1>
@@ -954,21 +1088,59 @@
       <methodparam><type>string</type><parameter>time</parameter></methodparam>
       <methodparam 
choice="opt"><type>int</type><parameter>now</parameter></methodparam>
      </methodsynopsis>
-    <para>
+    <simpara>
      Diese Funktion erwartet einen String mit einem Datum im
-     englischen Format und versucht, dieses in einen UNIX-Timestamp
-     umzusetzen.
+     englischen Format und versucht, diesen in einen UNIX-Timestamp
+     umzusetzen. Versucht wird dies relativ zu dem Timestamp den Sie mit
+     <parameter>now</parameter> angeben. Fehlt diese Angabe wird die aktuelle
+     Zeit angenommen. Schlägt die Umwandlung fehl, wird <literal>-1</literal>
+     zurückgegeben.
+    </simpara>
+    <simpara>
+     Diese Funktion <function>strtotime</function> verhält sich gemäß der Syntax von
+     GNU Date. Daher sollten Sie einen Blick in die GNU Manual Seite
+     <ulink url="&url.gnu.man.date-input;">Date Input Formats</ulink> werfen.
+     Dort wird die gültige Syntax für <parameter>time</parameter> beschrieben.
+    </simpara>
+    <para>
      <example>
       <title><function>strtotime</function>-Beispiele:</title>
       <programlisting role="php">
-echo strtotime ("now") . "\n";
-echo strtotime ("10 September 2000") . "\n";
-echo strtotime ("+1 day") . "\n";
-echo strtotime ("+1 week") . "\n";
-echo strtotime ("+1 week 2 days 4 hours 2 seconds") . "\n";
+<![CDATA[
+echo strtotime ("now"), "\n";
+echo strtotime ("10 September 2000"), "\n";
+echo strtotime ("+1 day"), "\n";
+echo strtotime ("+1 week"), "\n";
+echo strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
+echo strtotime ("next Thursday"), "\n";
+echo strtotime ("last Monday"), "\n";
+]]>
       </programlisting>
      </example>
     </para>
+    <para>
+     <example>
+      <title>Fehlerüberprüfung</title>
+      <programlisting role="php">
+<![CDATA[
+$str = 'Nicht gut';
+if (($timestamp = strtotime($str)) === -1) {
+    echo "Der String ($str) ist falsch.";
+} else {
+    echo "$str == ". date('l dS of F Y h:i:s A',$timestamp);
+}
+]]>
+      </programlisting>
+     </example>
+    </para>
+    <note>
+     <para>
+      Der gültige Bereich eines Timestamp liegt typischerweise zwischen
+      Fri, 13 Dec 1901 20:45:54 GMT und Tue, 19 Jan 2038 03:14:07 GMT.
+      (Das sind die Datumsangaben, die dem minimalen und maximalen Wert eines
+      vorzeichenbehafteten 32-bit Integer entsprechen.)
+     </para>
+    </note>
    </refsect1>
   </refentry>
 
@@ -990,5 +1162,8 @@
 sgml-local-catalogs:nil
 sgml-local-ecat-files:nil
 End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
 -->
 


Reply via email to