mirror of
https://github.com/php/doc-de.git
synced 2026-03-24 15:22:14 +01:00
1282 lines
45 KiB
XML
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
|
|
-->
|