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: 14.11.2019 04:44:29

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 @197 Swatch-Internet-Zeit (Beat) Siehe: de.wikipedia.org/Swatch
d 01 bis 31 14 Tag des Monats, 2-stellig mit führender Null
e Europe/Paris Europe/Berlin Zeitzone
D Mon bis Sun Thu Tag der Woche als Abkürzung mit drei Buchstaben
F January bis December November Monat als ganzes Wort
g 1 bis 12 4 12-Stunden-Format, ohne führende Nullen
G 0 bis 23 4 24-Studen-Format, ohne führende Nullen
h 01 bis 12 04 12-Studen-Format, mit führende Nullen
H 00 bis 23 04 24-Studen-Format, mit führende Nullen
i 00 bis 59 44 Minuten mit führenden Nullen
I 1 bei Sommerzeit, ansonsten 0 0 Fällt ein Datum in die Sommerzeit
j 1 bis 31 14 Tag des Monats ohne führende Nullen*
l Sunday bis Saturday Thursday Ausgeschriebener Tag der Woche
L 1 für ein Schaltjahr, ansonsten 0 0 Schaltjahr oder nicht
m 01 bis 12 11 Monat als Zahl, mit führenden Nullen
M Jan bis Dec Nov Monatsname als Abkürzung mit drei Buchstaben
n 1 bis 12 11 Monatszahl, ohne führende Nullen
N 1 bis 7 4 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   Thu, 14 Nov 2019 04:44:29 +0100 RFC 822 formatiertes Datum
s 00 bis 59 29 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 30 Anzahl der Tage in einem Monat
T EST, MDT, ... CET Zeitzoneneinstellung des Rechners
U   1573703069 Sekunden seit Beginn des UNIX-Zeit-Codes (January 1 1970 00:00:00 GMT)
w 0 (für Sonntag) bis 6 (für Samstag) 4 Numerischer Tag der Woche
W   46 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 317 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: Donnerstag, der 14 November 2019

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

Weitere Beispiele:

In den folgenden Beispielen habe ich das Format "j, d-M-Y" verwendet, das Ihnen so etwas wie: Monday, 17-Aug-2015 ausgeben wird. Sie können dies in das Format Ihrer Wahl ändern.

// Der kommende Montag
echo date("j, d-M-Y", strtotime("next monday"));
// Ausgabe: Monday, 17-Aug-2015

// Zeige den ersten Mittwoch im Dezember 2015
echo date("j, d-M-Y", strtotime("first wednesday 2015-12"));
// Ausgabe: Wednesday, 02-Dec-2015

// Der kommende Freitag
echo date("j, d-M-Y", strtotime("last friday"));
// Ausgabe: Friday, 07-Aug-2015

// Zeige den ersten Tag des nächsten Monats
echo date("j, d-M-Y", strtotime("first day of next month"));
// Ausgabe: Tuesday, 01-Sep-2015

// Zeige den ersten Montag im Januar
echo date("j, d-M-Y", strtotime("first monday 2015-01"));
// Ausgabe: Monday, 05-Jan-2015

// Zeige den ersten Montag des nächsten Monats
echo date("j, d-M-Y", strtotime("first monday of next month"));
// Ausgabe: Monday, 07-Sep-2015

// Zeige den letzten Tag dieses / aktuellen Monats
echo date("j, d-M-Y", strtotime("last day of this month"));
// Ausgabe: Monday, 31-Aug-2015

// Zeige den zweiten Freitag des letzten Monats
echo date("j, d-M-Y", strtotime("second friday of last month"));
// Ausgabe: Friday, 10-Jul-2015

Tipp

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