DateInterval::__constructErstellt ein neues DateInterval-Objekt
&reftitle.description;
publicDateInterval::__constructstringduration
Erstellt ein neues DateInterval-Objekt.
&reftitle.parameters;
duration
Eine Intervall-Spezifikation
Das Format beginnt mit dem Buchstaben P für
period. Jede Periodendauer wird als Integer-Wert,
gefolgt von einem Perioden-Bezeichner, repräsentiert. Enthält die
Dauer Zeitelemente, wird diesem Teil der Spezifikation der Buchstabe
T vorangestellt.
Perioden-Bezeichner für durationPerioden-BezeichnerBeschreibungYJahreMMonateDTageW
Wochen. Diese werden in Tage umgerechnet.
Vor PHP 8.0.0 konnte es nicht mit D kombiniert werden.
HStundenMMinutenSSekunden
Hier sind ein paar einfache Beispiele:
Zwei Tage entsprechen P2D.
Zwei Sekunden entsprechen PT2S.
Sechs Jahre und fünf Minuten entsprechen P6YT5M.
Die Einheitstypen müssen von der größten Einheit links bis zur
kleinsten Einheit rechts angegeben werden. Also Jahre vor Monaten,
Monate vor Tagen, Tage vor Minuten etc. Also muss ein Jahr und vier
Tage als P1Y4D dargestellt werden, nicht als
P4D1Y.
Die Spezifikation kann aber auch als Zeitstempel angegeben werden.
Ein Beispiel für ein Jahr und vier Tage wäre also
P0001-00-04T00:00:00.
Die Werte in diesem Format können allerdings den jeweiligen
Übersprungspunkt der Periode nicht überschreiten
(&zb; ist 25 Stunden ungültig).
Diese Formate basieren auf der
ISO 8601-Spezifikation für die Dauer.
&reftitle.errors;
Wenn duration nicht als Intervall geparst werden
kann, wird eine DateMalformedIntervalStringException
geworfen. Vor PHP 8.3 wird eine Exception
geworfen.
&reftitle.changelog;
&Version;&Description;8.3.0
Wirft nun eine
DateMalformedIntervalStringException
anstelle von Exception.
8.2.0
Nur die Eigenschaften y bis f,
invert und days sowie die neue
boolesche Eigenschaft from_string sind sichtbar.
8.0.0W kann mit D kombiniert werden.
&reftitle.examples;
Erstellen und Verwenden von DateInterval-Objekten
add($interval);
// Das Intervall in eine Zeichenkette umwandeln
echo $interval->format("%d");
]]>
&example.outputs;
DateInterval-Beispiel
&example.outputs.82;
int(0)
["m"]=>
int(0)
["d"]=>
int(9)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["f"]=>
float(0)
["invert"]=>
int(0)
["days"]=>
bool(false)
["from_string"]=>
bool(false)
}
]]>
&example.outputs.8;
int(0)
["m"]=>
int(0)
["d"]=>
int(9)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["f"]=>
float(0)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
bool(false)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}
]]>
&example.outputs.7;
int(0)
["m"]=>
int(0)
["d"]=>
int(2)
["h"]=>
int(0)
["i"]=>
int(0)
["s"]=>
int(0)
["f"]=>
float(0)
["weekday"]=>
int(0)
["weekday_behavior"]=>
int(0)
["first_last_day_of"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
bool(false)
["special_type"]=>
int(0)
["special_amount"]=>
int(0)
["have_weekday_relative"]=>
int(0)
["have_special_relative"]=>
int(0)
}
]]>
&reftitle.seealso;
DateInterval::formatDateTime::addDateTime::subDateTime::diff