1
0
mirror of https://github.com/php/doc-de.git synced 2026-03-24 15:22:14 +01:00
Files
archived-doc-de/reference/datetime/formats.xml
Martin Samesch 5cf6de8b59 Sync with EN
2025-12-10 13:54:49 +01:00

1282 lines
45 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3a8c3e77df070a046c9d5b56b68926ca2d7e5ee3 Maintainer: samesch Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="datetime.formats" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Unterstützte Datums- und Zeitformate</title>
<para>
Dieser Abschnitt beschreibt alle verschiedenen Formate in einem
BNF-ähnlichen Format, das der Parser von
<classname>DateTimeImmutable</classname>, <classname>DateTime</classname>,
<function>date_create_immutable</function>,
<function>date_create</function>, <function>date_parse</function> und
<function>strtotime</function> versteht. Die Formate sind in Abschnitte
gegliedert. In den meisten Fällen können Formate aus verschiedenen
Abschnitten durch Leerzeichen, Komma oder Punkt getrennt in derselben
Zeichenkette für Datum und Uhrzeit verwendet werden. Für jedes der
unterstützten Formate werden ein oder mehrere Beispiele sowie eine
Beschreibung des Formats angegeben. Bei Formatzeichen in einfachen
Anführungszeichen wird nicht zwischen Groß- und Kleinschreibung
unterschieden (<literal>'t'</literal> könnte <literal>t</literal> oder
<literal>T</literal> sein), bei Zeichen in doppelten Anführungszeichen wird
zwischen Groß- und Kleinschreibung unterschieden (<literal>"T"</literal> ist
nur <literal>T</literal>).
</para>
<para>
Die Formatierung von <classname>DateTimeImmutable</classname>- und
<classname>DateTime</classname>-Objekten wird in der Dokumentation zur
Methode <function>DateTimeInterface::format</function> beschrieben.
</para>
<para>
Es sollten ein paar allgemeine Regeln beachtet werden.
</para>
<orderedlist>
<listitem>
<simpara>
Der Parser erlaubt für jede Einheit (Jahr, Monat, Tag, Stunde, Minute,
Sekunde) die gesamte Bandbreite an Werten. Für ein Jahr sind das einfach 4
Ziffern, für einen Monat ist es 0-12, für einen Tag 0-31, für Stunden 0-24
und für Minuten 0-59.
</simpara>
</listitem>
<listitem>
<simpara>
Weil es Datumsangaben gibt, die eine Schaltsekunde enthalten, ist bei
Sekunden die 60 erlaubt. PHP implementiert jedoch die Unix-Zeit, bei der
"60" keine gültige Sekundenzahl ist, sodass es zu einem Überlauf kommt.
</simpara>
</listitem>
<listitem>
<simpara>
Wenn eine Zahl außerhalb des zulässigen Bereichs liegt, gibt
<function>strtotime</function> &false; zurück, und
<function>DateTimeImmutable::__construct</function> löst eine Ausnahme aus.
</simpara>
</listitem>
<listitem>
<simpara>
Wenn eine Zeichenkette ein Datum enthält, werden alle Zeitelemente auf 0
zurückgesetzt.
</simpara>
</listitem>
<listitem>
<simpara>
Wenn irgendein Teil einer Zeit in der angegebenen Zeichenkette vorhanden
ist, werden alle kleineren Zeitelemente auf 0 zurückgesetzt.
</simpara>
</listitem>
<listitem>
<simpara>
Um den Parser schneller (und universeller) zu machen, führt er keinerlei
Prüfungen durch.
</simpara>
</listitem>
<listitem>
<simpara>
Neben den Regeln für einzelne Zeitelemente versteht der Parser auch
spezifischere <link linkend="datetime.formats.compound">zusammengesetzte
Formate</link>, so kann er &zb; Unix-Zeitstempel
(<literal>@1690388256</literal>) und ISO-Wochentage
(<literal>2008-W28-3</literal>) auswerten.
</simpara>
</listitem>
<listitem>
<para>
Es gibt eine Möglichkeit, zu prüfen, ob ein ungültiges Datum oder eine
ungültige Uhrzeit angegeben wurde:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$res = date_parse("2015-09-31");
var_dump($res["warnings"]);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(1) {
[11] =>
string(27) "The parsed date was invalid"
}
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Es ist bereits möglich, die Grenzfälle zu berücksichtigen, aber dafür muss
<function>DateTimeImmutable::createFromFormat</function> mit dem korrekten
Format verwendet werden.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$res = DateTimeImmutable::createFromFormat("Y-m-d", "2015-09-34");
var_dump($res);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
object(DateTimeImmutable)#1 (3) {
["date"]=>
string(26) "2015-10-04 17:24:43.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/London"
}
]]>
</screen>
</informalexample>
</para>
</listitem>
</orderedlist>
<!--Time Formats: {{{-->
<sect1 annotations="chunk:false" xml:id="datetime.formats.time">
<title>Zeitformate</title>
<para>
Diese Seite beschreibt die verschiedenen Zeitformate in einem BNF-ähnlichen
Format, das der Parser von <classname>DateTimeImmutable</classname>,
<classname>DateTime</classname>, <function>date_create</function>,
<function>date_create_immutable</function> und
<function>strtotime</function> versteht.
</para>
<para>
Die Formatierung von <classname>DateTimeImmutable</classname>- und
<classname>DateTime</classname>-Objekten wird in der Dokumentation zur
Methode <function>DateTimeInterface::format</function> beschrieben.
</para>
<table>
<title>Verwendete Symbole</title>
<tgroup cols="3">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Formate</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>frac</literal> (Bruchteil)</entry>
<entry>. [0-9]+</entry>
<entry>".21342", ".85"</entry>
</row>
<row>
<entry><literal>hh</literal> (Stunden im 12-Stunden-Format)</entry>
<entry>"0"?[1-9] | "1"[0-2]</entry>
<entry>"04", "7", "12"</entry>
</row>
<row>
<entry><literal>HH</literal> (Stunden im 24-Stunden-Format)</entry>
<entry>[01][0-9] | "2"[0-4]</entry>
<entry>"04", "07", "19"</entry>
</row>
<row>
<entry><literal>meridian</literal> (a.m.=vormittags oder p.m.=nachmittags)</entry>
<entry>[AaPp] .? [Mm] .? [\0\t ]</entry>
<entry>"A.m.", "pM", "am."</entry>
</row>
<row>
<entry><literal>MM</literal> (Minuten; mit vorangestellter Null)</entry>
<entry>[0-5][0-9]</entry>
<entry>"00", "12", "59"</entry>
</row>
<row>
<entry><literal>II</literal> (Sekunden; mit vorangestellter Null)</entry>
<entry>[0-5][0-9]</entry>
<entry>"00", "12", "59"</entry>
</row>
<row>
<entry><literal>space</literal> (Leer- und Tabulatorzeichen)</entry>
<entry>[ \t]</entry>
<entry></entry>
</row>
<row>
<entry><literal>tz</literal> (Zeitzone)</entry>
<entry>"("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+</entry>
<entry>"CEST", "Europe/Amsterdam", "America/Indiana/Knox"</entry>
</row>
<row>
<entry><literal>tzcorrection</literal> (Zeitverschiebung)</entry>
<entry>"GMT"? [+-] <literal>hh</literal> ":"? <literal>MM</literal>?</entry>
<entry>"+0400", "GMT-07:00", "-07:00"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>12-Stunden-Schreibweise</title>
<tgroup cols="3">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Format</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry>Nur die Stunde mit Meridian</entry>
<entry><literal>hh</literal> <literal>space</literal>? <literal>meridian</literal></entry>
<entry>"4 am", "5PM"</entry>
</row>
<row>
<entry>Stunde und Minuten; mit Meridian</entry>
<entry><literal>hh</literal> [.:] <literal>MM</literal> <literal>space</literal>? <literal>meridian</literal></entry>
<entry>"4:08 am", "7:19P.M."</entry>
</row>
<row>
<entry>Stunde, Minuten und Sekunden; mit Meridian</entry>
<entry><literal>hh</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>space</literal>? <literal>meridian</literal></entry>
<entry>"4:08:37 am", "7:19:19P.M."</entry>
</row>
<row>
<entry>MS SQL (Stunde, Minuten, Sekunden und Bruchteil; mit Meridian)</entry>
<entry><literal>hh</literal> ":" <literal>MM</literal> ":" <literal>II</literal> [.:] [0-9]+ <literal>meridian</literal></entry>
<entry>"4:08:39:12313am"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>24-Stunden-Schreibweise</title>
<tgroup cols="3">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Format</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry>Stunde und Minuten</entry>
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal></entry>
<entry>"04:08", "19.19", "T23:43"</entry>
</row>
<row>
<entry>Stunde und Minuten; ohne Doppelpunkt</entry>
<entry>'t'? <literal>HH</literal> <literal>MM</literal></entry>
<entry>"0408", "t1919", "T2343"</entry>
</row>
<row>
<entry>Stunde, Minuten und Sekunden</entry>
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal></entry>
<entry>"04.08.37", "t19:19:19"</entry>
</row>
<row>
<entry>Stunde, Minuten und Sekunden; ohne Doppelpunkt</entry>
<entry>'t'? <literal>HH</literal> <literal>MM</literal> <literal>II</literal></entry>
<entry>"040837", "T191919"</entry>
</row>
<row>
<entry>Stunde, Minuten, Sekunden und Zeitzone</entry>
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>space</literal>? ( <literal>tzcorrection</literal> | <literal>tz</literal> )</entry>
<entry>"040837CEST", "T191919-0700"</entry>
</row>
<row>
<entry>Stunde, Minuten, Sekunden und Bruchteil</entry>
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>frac</literal></entry>
<entry>"04.08.37.81412", "19:19:19.532453"</entry>
</row>
<row>
<entry>Informationen über die Zeitzone</entry>
<entry><literal>tz</literal> | <literal>tzcorrection</literal></entry>
<entry>"CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<!--}}}-->
<!--Date Formats: {{{-->
<sect1 annotations="chunk:false" xml:id="datetime.formats.date">
<title>Datumsformate</title>
<para>
Diese Seite beschreibt die verschiedenen Datumsformate in einem
BNF-ähnlichen Format, das der Parser von
<classname>DateTimeImmutable</classname>, <classname>DateTime</classname>,
<function>date_create</function>,
<function>date_create_immutable</function> und
<function>strtotime</function> versteht.
</para>
<para>
Die Formatierung von <classname>DateTimeImmutable</classname>- und
<classname>DateTime</classname>-Objekten wird in der Dokumentation zur
Methode <function>DateTimeInterface::format</function> beschrieben.
</para>
<table>
<title>Verwendete Symbole</title>
<tgroup cols="3">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Format</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>daysuf</literal> (Suffix für einen Tag des Monats)</entry>
<entry>"st" | "nd" | "rd" | "th"</entry>
<entry></entry>
</row>
<row>
<entry><literal>dd</literal> (Tag des Monats; ohne vorangestellte Null)</entry>
<entry>([0-2]?[0-9] | "3"[01]) <literal>daysuf</literal>?</entry>
<entry>"7th", "22nd", "31"</entry>
</row>
<row>
<entry><literal>DD</literal> (Tag des Monats; zwei Ziffern mit vorangestellter Null)</entry>
<entry>"0" [0-9] | [1-2][0-9] | "3" [01]</entry>
<entry>"07", "31"</entry>
</row>
<row>
<entry><literal>m</literal> (vollständiger oder abgekürzter Monatsname)</entry>
<entry>'january' | 'february' | 'march' | 'april' | 'may' | 'june' |
'july' | 'august' | 'september' | 'october' | 'november' | 'december' |
'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' |
'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI"
| "VII" | "VIII" | "IX" | "X" | "XI" | "XII"</entry>
<entry></entry>
</row>
<row>
<entry><literal>M</literal> (Monatskürzel)</entry>
<entry>'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' |
'sep' | 'sept' | 'oct' | 'nov' | 'dec'</entry>
<entry></entry>
</row>
<row>
<entry><literal>mm</literal> (Nummer des Monats)</entry>
<entry>"0"? [0-9] | "1"[0-2]</entry>
<entry>"0", "04", "7", "12"</entry>
</row>
<row>
<entry><literal>MM</literal> (Nummer des Monats; mit vorangestellter Null)</entry>
<entry>"0" [0-9] | "1"[0-2]</entry>
<entry>"00", "04", "07", "12"</entry>
</row>
<row>
<entry><literal>y</literal> (Jahr)</entry>
<entry>[0-9]{1,4}</entry>
<entry>"00", "78", "08", "8", "2008"</entry>
</row>
<row>
<entry><literal>yy</literal> (Jahr; zwei Ziffern)</entry>
<entry>[0-9]{2}</entry>
<entry>"00", "08", "78"</entry>
</row>
<row>
<entry><literal>YY</literal> (Jahr; vier Ziffern)</entry>
<entry>[0-9]{4}</entry>
<entry>"2000", "2008", "1978"</entry>
</row>
<row>
<entry><literal>YYY</literal> (Jahr; erweitert, 5-19 Ziffern)</entry>
<entry>[0-9]{5,19}</entry>
<entry>"81412", "20192"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Lokalisierte Schreibweisen</title>
<tgroup cols="3">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Format</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry>Monat und Tag; amerikanische Schreibweise</entry>
<entry><literal>mm</literal> "/" <literal>dd</literal></entry>
<entry>"5/12", "10/27"</entry>
</row>
<row>
<entry>Monat, Tag und Jahr; amerikanische Schreibweise</entry>
<entry><literal>mm</literal> "/" <literal>dd</literal> "/" <literal>y</literal></entry>
<entry>"12/22/78", "1/17/2006", "1/17/6"</entry>
</row>
<row>
<entry>Jahr (vier Ziffern), Monat und Tag; getrennt durch Schrägstriche</entry>
<entry><literal>YY</literal> "/" <literal>mm</literal> "/" <literal>dd</literal></entry>
<entry>"2008/6/30", "1978/12/22"</entry>
</row>
<row>
<entry>Jahr (vier Ziffern) und Monat (GNU)</entry>
<entry><literal>YY</literal> "-" <literal>mm</literal></entry>
<entry>"2008-6", "2008-06", "1978-12"</entry>
</row>
<row>
<entry>Jahr, Monat und Tag; getrennt durch Bindestriche</entry>
<entry><literal>y</literal> "-" <literal>mm</literal> "-" <literal>dd</literal></entry>
<entry>"2008-6-30", "78-12-22", "8-6-21"</entry>
</row>
<row>
<entry>Tag, Monat und Jahr (vier Ziffern); getrennt durch Punkte, Tabulatorzeichen oder Bindestriche</entry>
<entry><literal>dd</literal> [.\t-] <literal>mm</literal> [.-] <literal>YY</literal></entry>
<entry>"30-6-2008", "22.12.1978"</entry>
</row>
<row>
<entry>Tag, Monat und Jahr (zwei Ziffern); getrennt durch Punkte oder Tabulatorzeichen</entry>
<entry><literal>dd</literal> [.\t] <literal>mm</literal> "." <literal>yy</literal></entry>
<entry>"30.6.08", "22\t12.78"</entry>
</row>
<row>
<entry>Tag, Monat (textuell) und Jahr</entry>
<entry><literal>dd</literal> ([ \t.-])* <literal>m</literal> ([ \t.-])* <literal>y</literal></entry>
<entry>"30-June 2008", "22DEC78", "14 III 1879"</entry>
</row>
<row>
<entry>Monat (textuell) und Jahr (vier Ziffern); der Tag wird auf den 1. zurückgesetzt</entry>
<entry><literal>m</literal> ([ \t.-])* <literal>YY</literal></entry>
<entry>"June 2008", "DEC1978", "March 1879"</entry>
</row>
<row>
<entry>Jahr (vier Ziffern) und Monat (textuell); der Tag wird auf den 1. zurückgesetzt</entry>
<entry><literal>YY</literal> ([ \t.-])* <literal>m</literal></entry>
<entry>"2008 June", "1978-XII", "1879.MArCH"</entry>
</row>
<row>
<entry>Monat (textuell), Tag und Jahr</entry>
<entry><literal>m</literal> ([ .\t-])* <literal>dd</literal> [,.stndrh\t ]+ <literal>y</literal></entry>
<entry>"July 1st, 2008", "April 17, 1790", "May.9,78"</entry>
</row>
<row>
<entry>Monat (textuell) und Tag</entry>
<entry><literal>m</literal> ([ .\t-])* <literal>dd</literal> [,.stndrh\t ]*</entry>
<entry>"July 1st,", "Apr 17", "May.9"</entry>
</row>
<row>
<entry>Tag und Monat (textuell)</entry>
<entry><literal>dd</literal> ([ .\t-])* <literal>m</literal></entry>
<entry>"1 July", "17 Apr", "9.May"</entry>
</row>
<row>
<entry>Monatskürzel, Tag und Jahr</entry>
<entry><literal>M</literal> "-" <literal>DD</literal> "-" <literal>y</literal></entry>
<entry>"May-09-78", "Apr-17-1790"</entry>
</row>
<row>
<entry>Jahr, Monatskürzel und Tag</entry>
<entry><literal>y</literal> "-" <literal>M</literal> "-" <literal>DD</literal></entry>
<entry>"78-Dec-22", "1814-MAY-17"</entry>
</row>
<row>
<entry>Jahr (und zwar nur das Jahr)</entry>
<entry><literal>YY</literal></entry>
<entry>"1978", "2008"</entry>
</row>
<row>
<entry>Jahr (erweitert; 5-19 Ziffern mit Vorzeichen)</entry>
<entry>[+-] <literal>YYY</literal></entry>
<entry>"-81120", "+20192"</entry>
</row>
<row>
<entry>Monat (textuell) (und zwar nur der Monat)</entry>
<entry><literal>m</literal></entry>
<entry>"March", "jun", "DEC"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Schreibweisen nach ISO8601</title>
<tgroup cols="3">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Format</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry>Acht Ziffern für Jahr, Monat und Tag</entry>
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal></entry>
<entry>"15810726", "19780417", "18140517"</entry>
</row>
<row>
<entry>Jahr (vier Ziffern), Monat und Tag; getrennt durch Schrägstriche</entry>
<entry><literal>YY</literal> "/" <literal>MM</literal> "/" <literal>DD</literal></entry>
<entry>"2008/06/30", "1978/12/22"</entry>
</row>
<row>
<entry>Jahr (zwei Ziffern), Monat und Tag; getrennt durch Schrägstriche</entry>
<entry><literal>yy</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
<entry>"08-06-30", "78-12-22"</entry>
</row>
<row>
<entry>Jahr (vier Ziffern, optional mit Vorzeichen), Monat und Tag</entry>
<entry>[+-]? <literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
<entry>"-0002-07-26", "+1978-04-17", "1814-05-17"</entry>
</row>
<row>
<entry>Jahr (5+ Ziffern mit erforderlichem Vorzeichen), Monat und Tag</entry>
<entry>[+-] <literal>YYY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
<entry>"-81120-02-26", "+20192-04-17"</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
Bei den Formaten <literal>y</literal> und <literal>yy</literal> werden
Jahreszahlen unter 100 auf besondere Weise behandelt. Liegt die Jahreszahl
im Bereich 0-69 (einschließlich), wird 2000 addiert, liegt sie im Bereich
70-99 (einschließlich), wird 1900 addiert. Das bedeutet, dass "00-01-01"
als "2000-01-01" interpretiert wird.
</para>
</note>
<note>
<para>
Das Format "Tag, Monat und Jahr (zwei Ziffern); getrennt durch Punkte oder
Tabulatorzeichen" (<literal>dd</literal> [.\t] <literal>mm</literal> ". "
<literal>yy</literal>) funktioniert nur für Jahre im Bereich 61-99
(einschließlich). Außerhalb dieses Bereichs hat das
<emphasis>Zeitformat</emphasis> "<literal>HH</literal> [.:]
<literal>MM</literal> [.:] <literal>SS</literal>" Vorrang.
</para>
</note>
<note>
<para>
Das Format "Jahr (und zwar nur das Jahr)" funktioniert nur dann
zuverlässig, wenn die Zeitangabe bereits gefunden wurde. Andernfalls, wenn
das vierstellige Jahr als <literal>HH</literal> <literal>MM</literal>
interpretiert werden kann, werden stattdessen diese beiden
Datumselemente gesetzt.
</para>
<para>
Damit konsistent nur ein Jahreswert interpretiert wird, sollte
<function>DateTimeImmutable::createFromFormat</function> mit dem
Spezifizierer <literal>Y</literal> verwendet werden.
</para>
</note>
<caution>
<para>
Es ist möglich, die Formate <literal>dd</literal> und
<literal>DD</literal> zu über- oder unterschreiten. Dabei bezeichnet der
Tag 0 den letzten Tag des vorherigen Monats, während eine Überschreitung
zum nächsten Monat gezählt wird. Somit entspricht "2008-08-00" dem
"2008-07-31" und "2008-06-31" dem "2008-07-01" (der Juni hat nur 30 Tage).
</para>
<para>
Wie aus dem obigen regulären Ausdruck hervorgeht, ist der Wertebereich für
den Tag auf 0-31 beschränkt. So ist &zb; "2008-06-32" keine gültige
Datumsangabe.
</para>
<para>
Es ist auch möglich, die Formate <literal>mm</literal> und
<literal>MM</literal> mit dem Wert 0 zu unterschreiten. Dabei steht der
Monat 0 für den Dezember des Vorjahres. Zum Beispiel ist "2008-00-22"
gleichbedeutend mit "2007-12-22".
</para>
<para>
Wenn die beiden vorherigen Fälle kombiniert werden und sowohl der Tag als
auch der Monat unterlaufen werden, geschieht Folgendes: "2008-00-00" wird
zunächst in "2007-12-00" umgewandelt, das dann in "2007-11-30" umgewandelt
wird. Dies geschieht auch mit der Zeichenkette "0000-00-00", die in
"-0001-11-30" umgewandelt wird (das Jahr -1 im ISO 8601-Kalender, das dem
Jahr 2 vor Christus im proleptischen gregorianischen Kalender entspricht).
</para>
</caution>
</sect1>
<!--}}}-->
<!--Compound Formats: {{{-->
<sect1 annotations="chunk:false" xml:id="datetime.formats.compound">
<title>Zusammengesetzte Formate</title>
<para>
Diese Seite beschreibt die verschiedenen zusammengesetzten
Datums- und Zeitformate in einem BNF-ähnlichen Format, das der Parser von
<classname>DateTimeImmutable</classname>, <classname>DateTime</classname>,
<function>date_create</function>,
<function>date_create_immutable</function> und
<function>strtotime</function> versteht.
</para>
<para>
Die Formatierung von <classname>DateTimeImmutable</classname>- und
<classname>DateTime</classname>-Objekten wird in der Dokumentation zur
Methode <function>DateTimeInterface::format</function> beschrieben.
</para>
<table>
<title>Verwendete Symbole</title>
<tgroup cols="3">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Formate</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>DD</literal> (Tag des Monats; zwei Ziffern mit vorangestellter Null)</entry>
<entry>"0" [0-9] | [1-2][0-9] | "3" [01]</entry>
<entry>"02", "12", "31"</entry>
</row>
<row>
<entry><literal>doy</literal> (Tag des Jahres; drei Ziffern)</entry>
<entry>"00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6]</entry>
<entry>"001", "012", "180", "350", "366"</entry>
</row>
<row>
<entry><literal>frac</literal> (Bruchteil)</entry>
<entry>. [0-9]+</entry>
<entry>".21342", ".85"</entry>
</row>
<row>
<entry><literal>hh</literal> (Stunden im 12-Stunden-Format)</entry>
<entry>"0"?[1-9] | "1"[0-2]</entry>
<entry>"04", "7", "12"</entry>
</row>
<row>
<entry><literal>HH</literal> (Stunden im 24-Stunden-Format)</entry>
<entry>[01][0-9] | "2"[0-4]</entry>
<entry>"04", "07", "19"</entry>
</row>
<row>
<entry><literal>meridian</literal> (a.m.=vormittags oder p.m.=nachmittags)</entry>
<entry>[AaPp] .? [Mm] .? [\0\t ]</entry>
<entry>"A.m.", "pM", "am."</entry>
</row>
<row>
<entry><literal>ii</literal> (Minuten)</entry>
<entry>[0-5]?[0-9]</entry>
<entry>"04", "8", "59"</entry>
</row>
<row>
<entry><literal>II</literal> (Minuten; mit vorangestellter Null)</entry>
<entry>[0-5][0-9]</entry>
<entry>"04", "08", "59"</entry>
</row>
<row>
<entry><literal>M</literal> (Monatskürzel)</entry>
<entry>'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec'</entry>
<entry></entry>
</row>
<row>
<entry><literal>MM</literal> (Nummer des Monats; mit vorangestellter Null)</entry>
<entry>[0-1][0-9]</entry>
<entry>"00", "12"</entry>
</row>
<row>
<entry><literal>space</literal> (Leer- und Tabulatorzeichen)</entry>
<entry>[ \t]</entry>
<entry></entry>
</row>
<row>
<entry><literal>ss</literal> (Sekunden)</entry>
<entry>([0-5]?[0-9])|60</entry>
<entry>"04", "8", "59", "60" (Schaltsekunde)</entry>
</row>
<row>
<entry><literal>SS</literal> (Sekunden; mit vorangestellter Null)</entry>
<entry>[0-5][0-9]</entry>
<entry>"04", "08", "59"</entry>
</row>
<row>
<entry><literal>W</literal> (Woche des Jahres)</entry>
<entry>"0"[1-9] | [1-4][0-9] | "5"[0-3]</entry>
<entry>"05", "17", "53"</entry>
</row>
<row>
<entry><literal>tzcorrection</literal> (Zeitverschiebung)</entry>
<entry>"GMT"? [+-] <literal>hh</literal> ":"? <literal>II</literal>?</entry>
<entry>"+0400", "GMT-07:00", "-07:00"</entry>
</row>
<row>
<entry><literal>YY</literal> (Jahr; vier Ziffern)</entry>
<entry>[0-9]{4}</entry>
<entry>"2000", "2008", "1978"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Standardformate</title>
<tgroup cols="2">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry>ATOM</entry>
<entry>"2022-06-02T16:58:35+00:00"</entry>
</row>
<row>
<entry>COOKIE</entry>
<entry>"Thursday, 02-Jun-2022 16:58:35 UTC"</entry>
</row>
<row>
<entry>ISO8601</entry>
<entry>"2022-06-02T16:58:35+0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;822">RFC 822</link></entry>
<entry>"Thu, 02 Jun 22 16:58:35 +0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;850">RFC 850</link></entry>
<entry>"Thursday, 02-Jun-22 16:58:35 UTC"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;1036">RFC 1036</link></entry>
<entry>"Thu, 02 Jun 22 16:58:35 +0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;1123">RFC 1123</link></entry>
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;2822">RFC 2822</link></entry>
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;3339">RFC 3339</link></entry>
<entry>"2022-06-02T16:58:35+00:00"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;3339">RFC 3339</link> Erweitert</entry>
<entry>"2022-06-02T16:58:35.698+00:00"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;7231">RFC 7231</link></entry>
<entry>"Thu, 02 Jun 2022 16:58:35 GMT"</entry>
</row>
<row>
<entry>RSS</entry>
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
</row>
<row>
<entry>W3C</entry>
<entry>"2022-06-02T16:58:35+00:00"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Lokalisierte Schreibweisen</title>
<tgroup cols="3">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Format</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry>Gebräuchliches Protokollformat</entry>
<entry><literal>dd</literal> "/" <literal>M</literal> "/" <literal>YY</literal> : <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal> <literal>space</literal> <literal>tzcorrection</literal></entry>
<entry>"10/Oct/2000:13:55:36 -0700"</entry>
</row>
<row>
<entry>EXIF</entry>
<entry><literal>YY</literal> ":" <literal>MM</literal> ":" <literal>DD</literal> " " <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
<entry>"2008:08:07 18:11:31"</entry>
</row>
<row>
<entry>ISO-Jahr mit ISO-Woche</entry>
<entry><literal>YY</literal> "-"? "W" <literal>W</literal></entry>
<entry>"2008W27", "2008-W28"</entry>
</row>
<row>
<entry>ISO-Jahr mit ISO-Woche und -Tag</entry>
<entry><literal>YY</literal> "-"? "W" <literal>W</literal> "-"? [0-7]</entry>
<entry>"2008W273", "2008-W28-3"</entry>
</row>
<row>
<entry>MySQL</entry>
<entry><literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal> " " <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
<entry>"2008-08-07 18:11:31"</entry>
</row>
<row>
<entry>PostgreSQL: Jahr mit Tag des Jahres</entry>
<entry><literal>YY</literal> "."? <literal>doy</literal></entry>
<entry>"2008.197", "2008197"</entry>
</row>
<row>
<entry>SOAP</entry>
<entry><literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal> "T" <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal> <literal>frac</literal> <literal>tzcorrection</literal>?</entry>
<entry>"2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"</entry>
</row>
<row>
<entry>Unix-Zeitstempel</entry>
<entry>"@" "-"? [0-9]+</entry>
<entry>"@1215282385"</entry>
</row>
<row>
<entry>Unix-Zeitstempel mit Mikrosekunden</entry>
<entry>"@" "-"? [0-9]+ "." [0-9]{0,6}</entry>
<entry>"@1607974647.503686"</entry>
</row>
<row>
<entry>XMLRPC</entry>
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal> "T" <literal>hh</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
<entry>"20080701T22:38:07", "20080701T9:38:07"</entry>
</row>
<row>
<entry>XMLRPC (kompakt)</entry>
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal> 't' <literal>hh</literal> <literal>II</literal> <literal>SS</literal></entry>
<entry>"20080701t223807", "20080701T093807"</entry>
</row>
<row>
<entry>WDDX</entry>
<entry><literal>YY</literal> "-" <literal>mm</literal> "-" <literal>dd</literal> "T" <literal>hh</literal> ":" <literal>ii</literal> ":" <literal>ss</literal></entry>
<entry>"2008-7-1T9:3:37"</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
Beim "W" in den Formaten "ISO-Jahr mit ISO-Woche" und "ISO-Jahr mit
ISO-Woche und -Tag" wird zwischen Groß- und Kleinschreibung unterschieden,
&dh; es darf nur ein großes "W" verwendet werden.
</para>
<para>
Beim "T" in den Formaten SOAP, XMLRPC und WDDX wird zwischen Groß- und
Kleinschreibung unterschieden, &dh; es darf nur ein großes "T" verwendet
werden.
</para>
<para>
Das Format "Unix-Zeitstempel" setzt die Zeitzone auf UTC.
</para>
</note>
</sect1>
<!--}}}-->
<!--Relative Formats: {{{-->
<sect1 annotations="chunk:false" xml:id="datetime.formats.relative">
<title>Relative Formate</title>
<para>
Diese Seite beschreibt die verschiedenen relativen Datums- und Zeitformate
in einem BNF-ähnlichen Format, das der Parser von
<classname>DateTimeImmutable</classname>,
<classname>DateTime</classname>, <function>date_create</function>,
<function>date_create_immutable</function> und
<function>strtotime</function> versteht.
</para>
<para>
Die Formatierung von <classname>DateTimeImmutable</classname>- und
<classname>DateTime</classname>-Objekten wird in der Dokumentation zur
Methode <function>DateTimeInterface::format</function> beschrieben.
</para>
<table>
<title>Verwendete Symbole</title>
<tgroup cols="2">
<thead>
<row>
<entry>Beschreibung</entry>
<entry>Format</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>dayname</literal> (Name eines Tages)</entry>
<entry>'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' |
'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' |
'sat'</entry>
</row>
<row>
<entry><literal>daytext</literal> (Intervalle in Wochen)</entry>
<entry>'weekday' | 'weekdays'</entry>
</row>
<row>
<entry><literal>number</literal></entry>
<entry>[+-]?[0-9]+</entry>
</row>
<row>
<entry><literal>ordinal</literal> (Ordnungszahlen und Indizes)</entry>
<entry>'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' |
'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' |
'next' | 'last' | 'previous' | 'this'</entry>
</row>
<row>
<entry><literal>reltext</literal> (Zeiger)</entry>
<entry>'next' | 'last' | 'previous' | 'this'</entry>
</row>
<row>
<entry><literal>space</literal> (Leer- und Tabulatorzeichen)</entry>
<entry>[ \t]+</entry>
</row>
<row>
<entry><literal>unit</literal> (Intervalle)</entry>
<entry>'ms' | 'µs' | (( 'msec' | 'millisecond' | 'µsec' | 'microsecond'
| 'usec' | 'sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' |
'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' |
<literal>daytext</literal></entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Tagesbezogene Schreibweisen</title>
<tgroup cols="3">
<thead>
<row>
<entry>Format</entry>
<entry>Beschreibung</entry>
<entry>Beispiele</entry>
</row>
</thead>
<tbody>
<row>
<entry>'yesterday'</entry>
<entry>Mitternacht von gestern</entry>
<entry>"yesterday 14:00"</entry>
</row>
<row>
<entry>'midnight'</entry>
<entry>Die Zeit wird auf 00:00:00 gesetzt</entry>
<entry></entry>
</row>
<row>
<entry>'today'</entry>
<entry>Die Zeit wird auf 00:00:00 gesetzt</entry>
<entry></entry>
</row>
<row>
<entry>'now'</entry>
<entry>Jetzt - dies wird einfach ignoriert</entry>
<entry></entry>
</row>
<row>
<entry>'noon'</entry>
<entry>Die Zeit wird auf 12:00:00 gesetzt</entry>
<entry>"yesterday noon"</entry>
</row>
<row>
<entry>'tomorrow'</entry>
<entry>Mitternacht von morgen</entry>
<entry></entry>
</row>
<row>
<entry>'back of' <literal>hour</literal></entry>
<entry>15 Minuten nach der angegebenen Stunde</entry>
<entry>"back of 7pm", "back of 15"</entry>
</row>
<row>
<entry>'front of' <literal>hour</literal></entry>
<entry>15 Minuten vor der angegebenen Stunde</entry>
<entry>"front of 5am", "front of 23"</entry>
</row>
<row>
<entry>'first day of'</entry>
<entry>
Wird auf den ersten Tag des aktuellen Monats gesetzt. Da dies nur den
aktuellen Monat betrifft, ist es in der Regel am besten, dieses Format
gefolgt vom Namen des Monats zu verwenden.
</entry>
<entry>"first day of January 2008"</entry>
</row>
<row>
<entry>'last day of'</entry>
<entry>
Wird auf den letzten Tag des aktuellen Monats gesetzt. Da dies nur den
aktuellen Monat betrifft, ist es in der Regel am besten, dieses Format
gefolgt vom Namen des Monats zu verwenden.
</entry>
<entry>"last day of next month"</entry>
</row>
<row>
<entry><literal>ordinal</literal> <literal>space</literal> <literal>dayname</literal> <literal>space</literal> 'of'</entry>
<entry>
Berechnet den <literal>x</literal>-ten Wochentag des aktuellen Monats.
</entry>
<entry>"first sat of July 2008"</entry>
</row>
<row>
<entry>'last' <literal>space</literal> <literal>dayname</literal> <literal>space</literal> 'of'</entry>
<entry>
Berechnet den <emphasis>letzten</emphasis> Wochentag des aktuellen Monats.
</entry>
<entry>"last sat of July 2008"</entry>
</row>
<row>
<entry><literal>number</literal> <literal>space</literal>? (<literal>unit</literal> | 'week')</entry>
<entry>Verarbeitet relative Zeitelemente, deren Wert eine Zahl ist.</entry>
<entry>"+5 weeks", "12 day", "-7 weekdays"</entry>
</row>
<row>
<entry><literal>ordinal</literal> <literal>space</literal> <literal>unit</literal></entry>
<entry>
Verarbeitet relative Zeitelemente, deren Wert ein Text ist.
<literal>last</literal> und <literal>previous</literal> entsprechen
<literal>-1</literal>, <literal>this</literal> entspricht nichts, und
<literal>next</literal> entspricht <literal>+1</literal>.
</entry>
<entry>"fifth day", "second month", "last day", "previous year"</entry>
</row>
<row>
<entry>'ago'</entry>
<entry>Kehrt alle Werte der zuvor gefundenen relativen Zeitpunkte um.</entry>
<entry>"2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago"</entry>
</row>
<row>
<entry><literal>dayname</literal></entry>
<entry>
Springt zum nächsten Tag mit diesem Namen (siehe
<link linkend="datetime.formats.relative.dayname-note" >Hinweis</link>).
</entry>
<entry>"Monday"</entry>
</row>
<row>
<entry><literal>reltext</literal> <literal>space</literal> 'week'</entry>
<entry>
Verarbeitet das spezielle Format "Wochentag + letzte/diese/nächste Woche".
</entry>
<entry>"Monday next week"</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
Relative Angaben werden immer <emphasis>nach</emphasis> nicht-relativen
Angaben verarbeitet. Das bedeutet, dass "+1 week july 2008" und
"july 2008 +1 week" gleichwertig sind.
</para>
<para>
Ausnahmen von dieser Regel sind: "yesterday", "midnight", "today", "noon"
und "tomorrow". Zu beachten ist, dass sich "tomorrow 11:00" und
"11:00 tomorrow" unterscheiden. Angenommen, das heutige Datum ist
"23. Juli 2008", dann gibt die erste Variante "2008-07-24 11:00" zurück,
während die zweite Variante "2008-07-24 00:00" zurückgibt. Der Grund für
dieses Verhalten ist, dass sich diese fünf Ausdrücke direkt auf die
aktuelle Zeit auswirken.
</para>
<para>
Schlüsselwörter wie "first day of" hängen vom Zusammenhang ab, in dem die
relative Formatierung verwendet wird. Wenn sie in einer statischen Methode
oder Funktion verwendet wird, ist der Referenzpunkt der aktuelle
Zeitstempel des Systems. Wenn sie jedoch in
<function>DateTime::modify</function> oder
<function>DateTimeImmutable::modify</function> verwendet wird, bezieht sie
sich auf das Objekt, für das die Methode <literal>modify()</literal>
aufgerufen wird.
</para>
</note>
<note>
<para xml:id="datetime.formats.relative.dayname-note">
Wenn der in der Zeichenkette für Datum und Uhrzeit verwendete Wochentag
mit dem aktuellen Wochentag übereinstimmt, sind die folgenden Hinweise zu
beachten. Der aktuelle Wochentag kann auch aus nicht-relativen Teilen
der Zeichenkette (neu) berechnet worden sein.
</para>
<orderedlist>
<listitem>
<simpara>
"<literal>dayname</literal>" rückt <emphasis>nicht</emphasis> auf einen
anderen Tag vor (Beispiel: "Wed July 23rd, 2008" bedeutet "2008-07-23").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>number</literal> <literal>dayname</literal>" rückt
<emphasis>nicht</emphasis> auf einen anderen Tag vor (Beispiel: "1
wednesday july 23rd, 2008" bedeutet "2008-07-23").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>number</literal> week <literal>dayname</literal>" fügt
zuerst die Anzahl der Wochen hinzu, rückt aber
<emphasis>nicht</emphasis> auf einen anderen Tag vor. In diesem Fall
sind "<literal>number</literal> week" und "<literal>dayname</literal>"
zwei getrennte Blöcke (Beispiel: "+1 week wednesday july 23rd, 2008"
bedeutet "2008-07-30").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>ordinal</literal> <literal>dayname</literal>"
<emphasis>rückt</emphasis> auf einen anderen Tag vor (Beispiel "first
wednesday july 23rd, 2008" bedeutet "2008-07-30").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>number</literal> week <literal>ordinal</literal>
<literal>dayname</literal>" fügt zuerst die Anzahl der Wochen hinzu und
rückt <emphasis>dann</emphasis> auf einen anderen Tag vor. In diesem
Fall sind "<literal>number</literal> week" und
"<literal>ordinal</literal> <literal>dayname</literal>" zwei getrennte
Blöcke (Beispiel: "+1 week first wednesday july 23rd, 2008" bedeutet
"2008-08-06").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>ordinal</literal> <literal>dayname</literal> 'of' " rückt
<emphasis>nicht</emphasis> auf einen anderen Tag vor (Beispiel:
"first wednesday of july 23rd, 2008" bedeutet "2008-07-02", weil die
spezifische Formulierung mit 'of' den Tag des Monats auf '1'
zurücksetzt und das "23rd" hier ignoriert wird).
</simpara>
</listitem>
</orderedlist>
<para>
Zu beachten ist auch, dass das "of" in "<literal>ordinal</literal>
<literal>space</literal> <literal>dayname</literal>
<literal>space</literal> 'of' " und "'last' <literal>space</literal>
<literal>dayname</literal> <literal>space</literal> 'of' " etwas
Besonderes bewirkt.
</para>
<orderedlist>
<listitem>
<simpara>
Es setzt den Tag des Monats auf 1.
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>ordinal</literal> <literal>dayname</literal> 'of' " rückt
<emphasis>nicht</emphasis> auf einen anderen Tag vor (Beispiel: "first
tuesday of july 2008" bedeutet "2008-07-01").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>ordinal</literal> <literal>dayname</literal> " rückt
<emphasis>nicht</emphasis> auf einen anderen Tag vor (Beispiel: "first
tuesday july 2008" bedeutet "2008-07-08", siehe auch Punkt 4 in obiger
Liste).
</simpara>
</listitem>
<listitem>
<simpara>
"'last' <literal>dayname</literal> 'of' " gibt den letzten
<literal>dayname</literal> des aktuellen Monats zurück (Beispiel: "last
wed of july 2008" bedeutet "2008-07-30")
</simpara>
</listitem>
<listitem>
<simpara>
"'last' <literal>dayname</literal>" gibt den letzten
<literal>dayname</literal> vor dem aktuellen Tag zurück (Beispiel: "last
wed july 2008" bedeutet "2008-06-25"; "july 2008" setzt zuerst das
aktuelle Datum auf "2008-07-01" und mit "last wed" verschiebt sich das
Datum auf den vorherigen Mittwoch, &dh; auf den "2008-06-25").
</simpara>
</listitem>
</orderedlist>
</note>
<note>
<para>
Relative Monatswerte werden auf der Grundlage der Länge der Monate
berechnet, die sie durchlaufen. Ein Beispiel wäre "+2 month 2011-11-30",
was "2012-01-30" ergeben würde. Das liegt daran, dass der November 30 Tage
hat und der Dezember 31 Tage, was insgesamt 61 Tage ergibt.
</para>
</note>
<note>
<para>
<literal>number</literal> ist eine <emphasis>ganzzahlige</emphasis> Zahl;
wenn eine Dezimalzahl angegeben wird, wird der Punkt (oder das Komma) in
der Regel als Begrenzungszeichen interpretiert. Zum Beispiel wird
<literal>'+1.5 hours'</literal> als <literal>'+1 5 hours'</literal>
interpretiert und nicht als <literal>'+1 hour +30 minutes'</literal>.
</para>
</note>
<sect2 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.4.0</entry>
<entry>
<literal>number</literal> akzeptiert nun wieder ein Pluszeichen
gefolgt von einem Minuszeichen, &zb; <literal>+-2</literal> und andere
Kombinationen von mehreren Zeichen.
</entry>
</row>
<row>
<entry>8.2.0</entry>
<entry>
<literal>number</literal> akzeptiert kein Pluszeichen gefolgt von
einem Minuszeichen mehr, &zb; <literal>+-2</literal>.
</entry>
</row>
<row>
<entry>7.0.8</entry>
<entry>
Wochen beginnen immer am Montag. Bisher galt auch der Sonntag als
Wochenbeginn.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</sect2>
</sect1>
<!--}}}-->
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=marker fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->