DateInterval::format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::formatFormatiert ein Intervall

Beschreibung

publicDateInterval::format(string$format): string

Formatiert ein Intervall.

Parameter-Liste

format

Die folgenden Zeichen werden in der Zeichenkette des Parameters format erkannt. Jedem Formatzeichen muss ein Prozentzeichen (%) vorangestellt werden.
format-ZeichenBeschreibungBeispielwerte
%%-Zeichen%
YJahre, numerisch, mindestens 2 Ziffern mit vorangestellter 001, 03
yJahre, numerisch1, 3
MMonate, numerisch, mindestens 2 Ziffern mit vorangestellter 001, 03, 12
mMonate, numerisch1, 3, 12
DTage, numerisch, mindestens 2 Ziffern mit vorangestellter 001, 03, 31
dTage, numerisch1, 3, 31
a Gesamtzahl der Tage als Ergebnis von DateTime::diff(), andernfalls (unknown)4, 18, 8123
HStunden, numerisch, mindestens 2 Ziffern mit vorangestellter 001, 03, 23
hStunden, numerisch1, 3, 23
IMinuten, numerisch, mindestens 2 Ziffern mit vorangestellter 001, 03, 59
iMinuten, numerisch1, 3, 59
SSekunden, numerisch, mindestens 2 Ziffern mit vorangestellter 001, 03, 57
sSekunden, numerisch1, 3, 57
FMikrosekunden, numerisch, mindestens 6 Ziffern mit vorangestellter 0007701, 052738, 428291
fMikrosekunden, numerisch7701, 52738, 428291
R Vorzeichen "-" wenn negativ, "+" wenn positiv -, +
r Vorzeichen "-" wenn negativ, leer wenn positiv -,

Rückgabewerte

Gibt ein formatiertes Intervall zurück.

Changelog

VersionBeschreibung
7.2.12 Die Formate F und f sind nun immer positiv.
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.

Siehe auch

To Top