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 -->