DateInterval::__construct
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::__construct — Erstellt ein neues DateInterval-Objekt
Beschreibung
$duration
)Erstellt ein neues DateInterval-Objekt.
Parameter-Liste
-
duration
-
Eine Intervall-Spezifikation
Das Format beginnt mit dem Buchstaben
P
fürperiod
. Jede Periodendauer wird als Integer-Wert, gefolgt von einem Perioden-Bezeichner, repräsentiert. Enthält die Dauer Zeitelemente, wird diesem Teil der Spezifikation der BuchstabeT
vorangestellt.Perioden-Bezeichner für duration
Perioden-Bezeichner Beschreibung Y
Jahre M
Monate D
Tage W
Wochen. Diese werden in Tage umgerechnet. Vor PHP 8.0.0 konnte es nicht mit D
kombiniert werden.H
Stunden M
Minuten S
Sekunden Hier sind ein paar einfache Beispiele: Zwei Tage entsprechen
P2D
. Zwei Sekunden entsprechenPT2S
. Sechs Jahre und fünf Minuten entsprechenP6YT5M
.Hinweis:
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 alsP4D1Y
.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 (z.B. ist25
Stunden ungültig).Diese Formate basieren auf der » ISO 8601-Spezifikation für die Dauer.
Fehler/Exceptions
Löst eine Exception aus, wenn
duration
nicht als Intervall geparst werden kann.
Changelog
Version | Beschreibung |
---|---|
8.2.0 |
Nur die Eigenschaften y bis f ,
invert und days sowie die neue
boolesche Eigenschaft from_string sind sichtbar.
|
8.0.0 |
W kann mit D kombiniert werden.
|
Beispiele
Beispiel #1 DateInterval-Beispiel
<?php
$interval = new DateInterval('P1W2D');
var_dump($interval);
?>
Das oben gezeigte Beispiel erzeugt mit PHP 8.2 folgende Ausgabe:
object(DateInterval)#1 (10) { ["y"]=> 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) }
Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:
object(DateInterval)#1 (16) { ["y"]=> 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) }
Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:
object(DateInterval)#1 (16) { ["y"]=> 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) }
Siehe auch
- DateInterval::format() - Formatiert ein Intervall
- DateTime::add() - Ändert ein DateTime-Objekt, wobei die Anzahl der Tage, Monate, Jahre, Stunden, Minuten und Sekunden hinzugefügt wird
- DateTime::sub() - Subtrahiert eine Anzahl von Tagen, Monaten, Jahren, Stunden, Minuten und Sekunden von einem DateTime-Objekt.
- DateTime::diff() - Liefert die Differenz zwischen zwei DateTime-Objekten