International PHP Conference Berlin 2025

DateTimeInterface::format

DateTimeImmutable::format

DateTime::format

date_format

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

DateTimeInterface::format -- DateTimeImmutable::format -- DateTime::format -- date_formatLiefert das Datum formatiert gemäß dem angegebenen Format

Beschreibung

Objektorientierter Stil

public DateTimeInterface::format(string $format): string
public DateTimeImmutable::format(string $format): string
public DateTime::format(string $format): string

Prozeduraler Stil

Gibt das Datum im angegebenen Format zurück.

Parameter-Liste

object

Nur bei prozeduralem Aufruf: Ein von date_create() zurückgegebenes DateTime-Objekt.

format

Das Format des ausgegebenen Datums vom Typ string. Siehe die Formatierungsoptionen unten. Es gibt auch mehrere vordefinierte Datumskonstanten, die stattdessen verwendet werden können, z. B. enthält DATE_RSS die Formatzeichenkette 'D, d M Y H:i:s'.

Die folgenden Zeichen werden in der Parameterzeichenkette format erkannt
format-Zeichen Beschreibung Mögliche Rückgabewerte
Tag --- ---
d Tag des Monats; zwei Ziffern mit vorangestellter Null 01 bis 31
D Textuelle Darstellung eines Tages; drei Buchstaben Mon bis Sun
j Tag des Monats; zwei Ziffern ohne vorangestellte Null 1 bis 31
l (kleines 'L') Vollständige textuelle Darstellung eines Tages Sunday bis Saturday
N Numerische Darstellung eines Wochentags gemäß ISO-8601 1 (für Montag) bis 7 (für Sonntag)
S Englisches Ordnungssuffix für den Tag des Monats; zwei Buchstaben st, nd, rd oder th; funktioniert gut mit j
w Numerische Darstellung eines Wochentags 0 (für Sonntag) bis 6 (für Samstag)
z Tag des Jahres (beginnend bei 0) 0 bis 365
Woche --- ---
W Wochennummer eines Jahres gemäß ISO-8601; die Wochen beginnen am Montag Beispiel: 42 (die 42. Woche des Jahres)
Monat --- ---
F Vollständige textuelle Darstellung eines Monats, z. B. January oder March January bis December
m Numerische Darstellung eines Monats; mit vorangestellter Null 01 bis 12
M Kurze textuelle Darstellung eines Monats; drei Buchstaben Jan bis Dec
n Numerische Darstellung eines Monats; ohne vorangestellte Null 1 bis 12
t Anzahl der Tage des angegebenen Monats 28 bis 31
Jahr --- ---
L Gibt an, ob es ein Schaltjahr ist 1 wenn es ein Schaltjahr ist, andernfalls 0
o Jahreszahl gemäß ISO 8601-Wochennummer. Dies hat den gleichen Wert wie Y, außer wenn die ISO-Wochennummer (W) zum vorherigen oder nächsten Jahr gehört; dann wird stattdessen das Jahr dieser Woche verwendet. Beispiele: 1999 oder 2003
X Erweiterte vollständige numerische Darstellung einer Jahreszahl, mindestens 4-stellig, mit - für Jahre vor Christus und + für Jahre nach Christus. Beispiele: -0055, +0787, +1999, +10191
x Erweiterte vollständige numerische Darstellung einer Jahreszahl, falls erforderlich, oder standardmäßige vollständige numerische Darstellung, falls möglich (wie Y). Mindestens vier Ziffern. Jahren vor Christi Geburt wird ein - vorangestellt. Jahreszahlen über (und einschließlich) 10000 werden mit einem + eingeleitet. Beispiele: -0055, 0787, 1999, +10191
Y Vollständige numerische Darstellung einer Jahreszahl; mindestens vier Ziffern, mit - für die Jahre vor Christus Beispiele: -0055, 0787, 1999, 2003, 10191
y Darstellung einer Jahreszahl; zwei Ziffern Beispiele: 99 oder 03
Zeit --- ---
a Ante meridiem und Post meridiem in Kleinbuchstaben am oder pm
A Ante meridiem und Post meridiem in Großbuchstaben AM oder PM
B Swatch-Internetzeit 000 bis 999
g Stunde im 12-Stunden-Format; ohne vorangestellte Null 1 bis 12
G Stunde im 24-Stunden-Format; ohne vorangestellte Null 0 bis 23
h Stunde im 12-Stunden-Format; mit vorangestellter Null 01 bis 12
H Stunde im 24-Stunden-Format; mit vorangestellter Null 00 bis 23
i Minuten; mit vorangestellter Null 00 bis 59
s Sekunden; mit vorangestellter Null 00 bis 59
u Mikrosekunden. Es ist zu beachten, dass die Funktion date() immer 000000 ausgibt, weil sie einen Parameter vom Typ int erwartet, während DateTimeInterface::format() Mikrosekunden unterstützt, wenn ein Objekt vom Typ DateTimeInterface mit Mikrosekunden erstellt wurde. Beispiel: 654321
v Millisekunden. Es gilt der gleiche Hinweis wie für u. Beispiel: 654
Zeitzone --- ---
e Bezeichner der Zeitzone Beispiele: UTC, GMT, Atlantic/Azores
I (großes i) Gibt an, ob das Datum in der Sommerzeit liegt oder nicht 1 für Sommerzeit, andernfalls 0
O Differenz zur Greenwich-Zeit (GMT); ohne Doppelpunkt zwischen Stunden und Minuten Beispiel: +0200
P Differenz zur Greenwich-Zeit (GMT); mit Doppelpunkt zwischen Stunden und Minuten Beispiel: +02:00
p Dasselbe wie P, gibt aber Z zurück anstelle von +00:00 (verfügbar seit PHP 8.0.0) Beispiele: Z oder +02:00
T Zeitzonenkürzel, falls bekannt; andernfalls die Abweichung von der GMT Beispiele: EST, MDT, +05
Z Zeitverschiebung in Sekunden. Der Wert ist für Zeitzonen westlich von der UTC immer negativ und für die Zeitzonen östlich von der UTC immer positiv. -43200 bis 50400
Datum und Uhrzeit vollständig --- ---
c Datum gemäß ISO 8601 2004-02-12T15:19:21+00:00
r Datum im Format » RFC 2822/» RFC 5322 Beispiel: Thu, 21 Dec 2000 16:01:07 +0200
U Sekunden seit der Unix-Epoche (1. Januar 1970 00:00:00 GMT) Siehe auch time()

In der Formatzeichenkette nicht erkannte Zeichen werden unverändert ausgegeben. In Verbindung mit der Funktion gmdate() gibt das Format Z immer 0 zurück.

Hinweis:

Da diese Funktion nur Zeitstempel vom Typ int akzeptiert, ist das Formatzeichen u nur dann nützlich, wenn die Funktion date_format() mit benutzerdefinierten Zeitstempeln verwendet wird, die mit date_create() erstellt wurden.

Rückgabewerte

Gibt bei Erfolg eine Zeichenkette mit dem formatierten Datum zurück.

Changelog

Version Beschreibung
8.2.0 Die format-Zeichen X und x wurden hinzugefügt.
8.0.0 Vor dieser Version wurde bei einem Fehler false zurückgegeben.

Beispiele

Beispiel #1 DateTimeInterface::format()-Beispiel

Objektorientierter Stil

<?php
$date
= new DateTimeImmutable('2000-01-01');
echo
$date->format('Y-m-d H:i:s');
?>

Prozeduraler Stil

<?php
$date
= date_create('2000-01-01');
echo
date_format($date, 'Y-m-d H:i:s');
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

2000-01-01 00:00:00

Beispiel #2 Weitere Beispiele

<?php
// Die Standard-Zeitzone setzen, die verwendet werden soll.
date_default_timezone_set('UTC');

// Jetzt
$date = new DateTimeImmutable();

// Gibt z. B. Folgendes aus: Wednesday
echo $date->format('l'), "\n";

// Gibt z. B. Folgendes aus: Wednesday 19th of October 2022 08:40:48 AM
echo $date->format('l jS \o\f F Y h:i:s A'), "\n";

/* Verwenden von Konstanten im Format-Parameter */
// Gibt z. B. Folgendes aus: Wed, 19 Oct 2022 08:40:48 +0000
echo $date->format(DateTimeInterface::RFC2822), "\n";
?>

Um zu verhindern, dass ein bekanntes Zeichen in der Formatzeichenkette interpretiert wird, kann es mit einem vorangestellten Backslash maskiert werden. Wenn das Zeichen mit dem Backslash bereits eine spezielle Zeichenfolge ist, muss eventuell auch der Backslash maskiert werden.

Beispiel #3 Zeichen beim Formatieren maskieren

<?php
$date
= new DateTimeImmutable();

// Gibt z. B. Folgendes aus: Wednesday the 19th
echo $date->format('l \t\h\e jS');
?>

Um Daten in anderen Sprachen zu formatieren, kann IntlDateFormatter::format() anstelle von DateTimeInterface::format() verwendet werden.

Anmerkungen

Diese Methode verwendet keine Gebietsschemata; die gesamte Ausgabe erfolgt auf englisch.

Siehe auch

  • date() - Formatiert einen Unix-Zeitstempel
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top