(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::format — Formatiert ein Intervall
format
format -Zeichen |
Beschreibung | Beispielwerte |
---|---|---|
% |
% -Zeichen |
% |
Y |
Jahre, numerisch, mindestens 2 Ziffern mit vorangestellter 0 | 01 , 03 |
y |
Jahre, numerisch | 1 , 3 |
M |
Monate, numerisch, mindestens 2 Ziffern mit vorangestellter 0 | 01 , 03 , 12 |
m |
Monate, numerisch | 1 , 3 , 12 |
D |
Tage, numerisch, mindestens 2 Ziffern mit vorangestellter 0 | 01 , 03 , 31 |
d |
Tage, numerisch | 1 , 3 , 31 |
a |
Gesamtzahl der Tage als Ergebnis von
DateTime::diff(), andernfalls
(unknown)
|
4 , 18 , 8123 |
H |
Stunden, numerisch, mindestens 2 Ziffern mit vorangestellter 0 | 01 , 03 , 23 |
h |
Stunden, numerisch | 1 , 3 , 23 |
I |
Minuten, numerisch, mindestens 2 Ziffern mit vorangestellter 0 | 01 , 03 , 59 |
i |
Minuten, numerisch | 1 , 3 , 59 |
S |
Sekunden, numerisch, mindestens 2 Ziffern mit vorangestellter 0 | 01 , 03 , 57 |
s |
Sekunden, numerisch | 1 , 3 , 57 |
F |
Mikrosekunden, numerisch, mindestens 6 Ziffern mit vorangestellter 0 | 007701 , 052738 , 428291 |
f |
Mikrosekunden, numerisch | 7701 , 52738 , 428291 |
R |
Vorzeichen "- " wenn negativ,
"+ " wenn positiv
|
- , + |
r |
Vorzeichen "- " wenn negativ, leer wenn positiv
|
- ,
|
Gibt ein formatiertes Intervall zurück.
Version | Beschreibung |
---|---|
7.2.12 |
Die Formate F und f sind nun
immer positiv.
|
7.1.0 |
Die Formatzeichen F und f wurden
hinzugefügt.
|
Beispiel #1 DateInterval-Beispiel
<?php
$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d Tage');
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
4 Tage
Beispiel #2 DateInterval und Überträge
<?php
$interval = new DateInterval('P32D');
echo $interval->format('%d Tage');
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
32 Tage
Beispiel #3 DateInterval und DateTime::diff() mit den Modifikatoren %a und %d
<?php
$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);
// %a gibt die Gesamtzahl der Tage aus.
echo $interval->format('%a Tage insgesamt')."\n";
// Während %d nur die Anzahl der Tage ausgibt, die noch nicht durch den
// Monat abgedeckt sind.
echo $interval->format('%m Monat, %d Tage)');
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
31 Tage insgesamt 1 Monat, 0 Tage
Hinweis:
Die Methode DateInterval::format() berechnet die Zeiteinheiten nicht neu und überträgt sie nicht, wenn die Datumswerte überlaufen. Dies ist beabsichtigt, weil es nicht möglich ist, Werte wie
"32 days"
zu übertragen, die als alles von"1 month and 4 days"
bis"1 month and 1 day"
interpretiert werden könnten.