PHP 8.4.1 Released!

DateInterval::format

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

DateInterval::formatFormatiert ein Intervall

Beschreibung

public DateInterval::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-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 -,

Rückgabewerte

Gibt ein formatiertes Intervall zurück.

Changelog

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.

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

add a note

User Contributed Notes 1 note

up
1
online dot cloudmeetings dot marco at gmail dot com
4 months ago
Pls note these important abbreviations;

P: period
Y: years
M: months
D: days
T: time
H: hours
M: minutes
S: seconds

The above is from the ISO 8601 - an international standard that defines how to use, store, and transfer date, time, and duration information.
To Top