DateInterval::format
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::format — Formatiert ein Intervall
Beschreibung
$format
): stringFormatiert ein Intervall.
Parameter-Liste
-
format
-
Die folgenden Zeichen werden in der Zeichenkette des Parameters format
erkannt. Jedem Formatzeichen muss ein Prozentzeichen (%
) vorangestellt werden.format
-ZeichenBeschreibung 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-
,
Rückgabewerte
Gibt ein formatiertes Intervall zurück.
Changelog
Version | Beschreibung |
---|---|
7.1.0 |
Die Formatzeichen F und f wurden
hinzugefügt.
|
Beispiele
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
Anmerkungen
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.