Datum und Zeitfunktionen

Ausgabe von Datum, Uhrzeit und anderen Datumsformatierungen.

Zeitzone setzen

Die Zeitzone können Sie in PHP mit date_default_timezone_set("Europe/Berlin"); setzen.
Weitere Zeitzonen finden Sie unter: php.net/manual/de/timezones.europe.php

Funktion: date()

Die Darstellung eines Datums erfolgt mit echo date("X");, wobei das X durch eines oder mehrerer der nachfolgenden Symbole formatiert wird.

Beispiel: <?php echo date("d.m.Y H:i:s"); ?>

Ausgabe: 20.02.2019 02:07:50

Normaler Text innerhalb der date-Funktion, dieser muss durch ein Rückstrich (Backslash "\") geschützt werden. date("H:i:s \U\h\r")

Symbol Rückgabewert Beispiel Beschreibung
a am oder pm am Kleingeschrieben: „ante meridiem”, „post meridiem” (Vormittag, Nachmittag)
A AM oder PM AM Großgeschrieben: „ante meridiem”, „post meridiem
B 000 bis 999 @088 Swatch-Internet-Zeit (Beat) Siehe: de.wikipedia.org/Swatch
d 01 bis 31 20 Tag des Monats, 2-stellig mit führender Null
e Europe/Paris Europe/Berlin Zeitzone
D Mon bis Sun Wed Tag der Woche als Abkürzung mit drei Buchstaben
F January bis December February Monat als ganzes Wort
g 1 bis 12 2 12-Stunden-Format, ohne führende Nullen
G 0 bis 23 2 24-Studen-Format, ohne führende Nullen
h 01 bis 12 02 12-Studen-Format, mit führende Nullen
H 00 bis 23 02 24-Studen-Format, mit führende Nullen
i 00 bis 59 07 Minuten mit führenden Nullen
I 1 bei Sommerzeit, ansonsten 0 0 Fällt ein Datum in die Sommerzeit
j 1 bis 31 20 Tag des Monats ohne führende Nullen*
l Sunday bis Saturday Wednesday Ausgeschriebener Tag der Woche
L 1 für ein Schaltjahr, ansonsten 0 0 Schaltjahr oder nicht
m 01 bis 12 02 Monat als Zahl, mit führenden Nullen
M Jan bis Dec Feb Monatsname als Abkürzung mit drei Buchstaben
n 1 bis 12 2 Monatszahl, ohne führende Nullen
N 1 bis 7 3 Numerische Repräsentation des Wochentages (1 für Montag bis 7 für Samstag)
o 2019 Jahreszahl gemäß ISO-8601. Dies ergibt den gleichen Wert wie Y, außer wenn die ISO-Kalenderwoche (W) zum vorhergehenden oder nächsten Jahr gehört, wobei dann jenes Jahr verwendet wird
O +0200 +0100 Zeitunterschied zur Greenwich Mean Time (GMT) in Stunden
r   Wed, 20 Feb 2019 02:07:50 +0100 RFC 822 formatiertes Datum
s 00 bis 59 50 Sekunden, mit führenden Nullen
S st, nd, rd oder th th Anhang der englischen Aufzählung für einen Monat, zwei Zeichen
t 28 bis 31 28 Anzahl der Tage in einem Monat
T EST, MDT, ... CET Zeitzoneneinstellung des Rechners
U   1550624870 Sekunden seit Beginn des UNIX-Zeit-Codes (January 1 1970 00:00:00 GMT)
w 0 (für Sonntag) bis 6 (für Samstag) 3 Numerischer Tag der Woche
W   08 ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag
Y Bsp: 1997 oder 2005 2019 Vierstellige Ausgabe der Jahreszahl
y Bsp: 97 oder 05 19 Zweistellige Ausgabe der Jahreszahl
z 0 bis 365 50 Der Tag des Jahres
Z   3600 Offset der Zeitzone in Sekunden

Funktion: strftime()

Die Darstellung eines Datums erfolgt mit echo strftime("X");, wobei das X durch eines oder mehrerer der nachfolgenden Symbole formatiert wird.

Mit setlocale(LC_TIME, "de_DE", "german"); wird das deutsche Datumsformat übernommen.

Beispiel: echo strftime("%A, der %d %B %Y");

Ausgabe: Mittwoch, der 20 Februar 2019

Symbol Rückgabewert Beispiele
setlocale(german)
Beschreibung
%a Sun, Mon, We Mi Abgekürzter Wochentag
%A Sunday, Monday, Wednesday Mittwoch Unkekürzter Wochentag
%b Jan, Jul, Dec Feb Abgekürzter Monatsname
%B January, July, December Februar Unkekürzter Monatsname
%c Sun Jul 1 12:14:45 2007 Mi 20 Feb 2019 02:07:50 CET Datums- und Zeitangabe
%C 00 - 99 20 Ausgabe des jahrhunderts
%d 01 - 31 20 Aktueller Tag des Monats
%D 11/18/07 02/20/19 Ausgabe des aktuellen Datums (Monat/Tag/Jahr)
%e 0 - 31 20 Tag des Monats (Dezimalwert) einstelligen Werten wird ein Leerzeichen vorangestellt.
%h Jul Feb Abgekürzter Monatsname (so wie %b)
%H 00 - 23 02 Stunde als Zahl im 24-Stunden-Format
%I 01 - 12 02 Stunde als Zahl im 12-Stunden-Format
%j 001 - 366 051 Tag des Jahres als Zahl
%m 01 - 12 02 Monat als Zahl
%M 37 07 Minute als Dezimalwert
%n Neue Zeile
%p am / pm (dt: vorm./nachm.) Ausgabe der Tageszeit
%r 02:07:50 Zeit "am" oder "pm"-Formatierung
%R 02:07 Zeit in der 24-Stunden-Formatierung
%S 0 - 59 50 Sekunden als Dezimal-Wert
%t Tabulator
%T 15:22:45 02:07:50 Aktuelle Zeit im 24-Stunden-Format
%u 1 - 7 3 Tag der Woche als Dezimal-Wert, dabei ist 1 = Montag, 7 = Sonntag
%U 00 - 53 07 Akt. Woche als Zahlenwert, beginnend mit dem ersten Sonntag im Jahr
%V 08 Kalenderwoche nach ISO: 8601:1988
%w 0 - 6 3 Wochentag als Dezimal-Wert
%W 07 Akt. Woche als Zahlenwert, beginnend mit dem ersten Montag im Jahr
%x 20.02.2019 Aktuelles Datum
%X 02:07:50 Aktuelle Uhrzeit
%y 00 - 99 19 Jahr als 2-stellige Zahl
%Y 2007 2019 Jahr als 4-stellige Zahl
%Z CET Zeitzone
%% % Ein %-Zeichen

Funktion: strtotime()

Beispiel: <?php echo date("d.m.Y", strtotime("Sunday October 2019")); ?>
Gibt das Datum des ersten Sonntags im Oktober (2019) aus: 06.10.2019

Weitere Beispiele:

<?php
$zeit = mktime(0,0,0,   12, 6, 2019); // Monat, Tag, Jahr
echo date("d.m.Y", strtotime("+1 day", $zeit)) . "<br>";
echo date("d.m.Y", strtotime("+2 week", $zeit)) . "<br>";
echo date("d.m.Y", strtotime("-5 month", $zeit)) . "<br>";
echo date("d.m.Y", strtotime("Friday", $zeit)) . "<br>";
echo date("d.m.Y", strtotime("next Monday", $zeit)) . "<br>";
echo date("d.m.Y", strtotime("last Sunday", $zeit));
?>

Ausgabe:

07.12.2019
20.12.2019
06.07.2019
06.12.2019
09.12.2019
01.12.2019

TypZeichen (englische Begriffe)
Schrittweiten +1, +2, +3, +50, ...   -1, -2, -3, -50, ...
Numerisches Datum/Zeit Format: Y-m-d, H:i:s
Ordnungsnamen first, second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth, eleventh, twelfth [= 1-12]
Spezielle Ordnungsnamen last = -1, this = 0, next = 1
Spezielle Wörter tomorrow, yesterday, ago, fortnight, now, today, day, week, month, year, hour, minute, min, second, sec
Tage / Monate sunday - saterday, sun - sat, January - December, Jan - Dec

Tipp

Berechnungen mit dem Datum - Feiertage, Mondphase, Wochentag, Sonnenaufgang und Sonnenuntergang, Julianisches Datum, Sternzeichen, ...