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: 19.04.2021 17:49:19
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 | pm | Kleingeschrieben: „ante meridiem”, „post meridiem” (Vormittag, Nachmittag) |
A | AM oder PM | PM | Großgeschrieben: „ante meridiem”, „post meridiem” |
B | 000 bis 999 | @700 | Swatch-Internet-Zeit (Beat) Siehe: de.wikipedia.org/Swatch |
d | 01 bis 31 | 19 | Tag des Monats, 2-stellig mit führender Null |
e | Europe/Paris | Europe/Berlin | Zeitzone |
D | Mon bis Sun | Mon | Tag der Woche als Abkürzung mit drei Buchstaben |
F | January bis December | April | Monat als ganzes Wort |
g | 1 bis 12 | 5 | 12-Stunden-Format, ohne führende Nullen |
G | 0 bis 23 | 17 | 24-Studen-Format, ohne führende Nullen |
h | 01 bis 12 | 05 | 12-Studen-Format, mit führende Nullen |
H | 00 bis 23 | 17 | 24-Studen-Format, mit führende Nullen |
i | 00 bis 59 | 49 | Minuten mit führenden Nullen |
I | 1 bei Sommerzeit, ansonsten 0 | 1 | Fällt ein Datum in die Sommerzeit |
j | 1 bis 31 | 19 | Tag des Monats ohne führende Nullen* |
l | Sunday bis Saturday | Monday | Ausgeschriebener Tag der Woche |
L | 1 für ein Schaltjahr, ansonsten 0 | 0 | Schaltjahr oder nicht |
m | 01 bis 12 | 04 | Monat als Zahl, mit führenden Nullen |
M | Jan bis Dec | Apr | Monatsname als Abkürzung mit drei Buchstaben |
n | 1 bis 12 | 4 | Monatszahl, ohne führende Nullen |
N | 1 bis 7 | 1 | Numerische Repräsentation des Wochentages (1 für Montag bis 7 für Samstag) |
o | 2021 | 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 | +0200 | Zeitunterschied zur Greenwich Mean Time (GMT) in Stunden |
r | Mon, 19 Apr 2021 17:49:19 +0200 | RFC 822 formatiertes Datum | |
s | 00 bis 59 | 19 | 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, ... | CEST | Zeitzoneneinstellung des Rechners |
U | 1618847359 | Sekunden seit Beginn des UNIX-Zeit-Codes (January 1 1970 00:00:00 GMT) | |
w | 0 (für Sonntag) bis 6 (für Samstag) | 1 | Numerischer Tag der Woche |
W | 16 | ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag | |
Y | Bsp: 1997 oder 2005 | 2021 | Vierstellige Ausgabe der Jahreszahl |
y | Bsp: 97 oder 05 | 21 | Zweistellige Ausgabe der Jahreszahl |
z | 0 bis 365 | 108 | Der Tag des Jahres |
Z | 7200 | 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: Montag, der 19 April 2021
Symbol | Rückgabewert | Beispiele setlocale(german) |
Beschreibung |
---|---|---|---|
%a | Sun, Mon, We | Mo | Abgekürzter Wochentag |
%A | Sunday, Monday, Wednesday | Montag | Unkekürzter Wochentag |
%b | Jan, Jul, Dec | Apr | Abgekürzter Monatsname |
%B | January, July, December | April | Unkekürzter Monatsname |
%c | Sun Jul 1 12:14:45 2007 | Mo 19 Apr 2021 17:49:19 CEST | Datums- und Zeitangabe |
%C | 00 - 99 | 20 | Ausgabe des jahrhunderts |
%d | 01 - 31 | 19 | Aktueller Tag des Monats |
%D | 11/18/07 | 04/19/21 | Ausgabe des aktuellen Datums (Monat/Tag/Jahr) |
%e | 0 - 31 | 19 | Tag des Monats (Dezimalwert) einstelligen Werten wird ein Leerzeichen vorangestellt. |
%h | Jul | Apr | Abgekürzter Monatsname (so wie %b) |
%H | 00 - 23 | 17 | Stunde als Zahl im 24-Stunden-Format |
%I | 01 - 12 | 05 | Stunde als Zahl im 12-Stunden-Format |
%j | 001 - 366 | 109 | Tag des Jahres als Zahl |
%m | 01 - 12 | 04 | Monat als Zahl |
%M | 37 | 49 | Minute als Dezimalwert |
%n | Neue Zeile | ||
%p | am / pm (dt: vorm./nachm.) | Ausgabe der Tageszeit | |
%r | 05:49:19 | Zeit "am" oder "pm"-Formatierung | |
%R | 17:49 | Zeit in der 24-Stunden-Formatierung | |
%S | 0 - 59 | 19 | Sekunden als Dezimal-Wert |
%t | Tabulator | ||
%T | 15:22:45 | 17:49:19 | Aktuelle Zeit im 24-Stunden-Format |
%u | 1 - 7 | 1 | Tag der Woche als Dezimal-Wert, dabei ist 1 = Montag, 7 = Sonntag |
%U | 00 - 53 | 16 | Akt. Woche als Zahlenwert, beginnend mit dem ersten Sonntag im Jahr |
%V | 16 | Kalenderwoche nach ISO: 8601:1988 | |
%w | 0 - 6 | 1 | Wochentag als Dezimal-Wert |
%W | 16 | Akt. Woche als Zahlenwert, beginnend mit dem ersten Montag im Jahr | |
%x | 19.04.2021 | Aktuelles Datum | |
%X | 17:49:19 | Aktuelle Uhrzeit | |
%y | 00 - 99 | 21 | Jahr als 2-stellige Zahl |
%Y | 2007 | 2021 | Jahr als 4-stellige Zahl |
%Z | CEST | Zeitzone | |
%% | % | Ein %-Zeichen |
Funktion: strtotime()
Beispiel: <?php echo date("d.m.Y", strtotime("Sunday October 2021")); ?>
Gibt das Datum des ersten Sonntags im Oktober (2021) aus:
03.10.2021
Weitere Beispiele:
<?php $zeit = mktime(0,0,0, 12, 6, 2021); // 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.2021
20.12.2021
06.07.2021
10.12.2021
13.12.2021
05.12.2021
Typ | Zeichen (englische Begriffe) |
---|---|
Schrittweiten | +1, +2, +3, +50, ... -1, -2, -3, -50, ... |
Numerisches Datum/Zeit | Format: Y-m-d, H:i:s |
Ordnungsnamen |
first, |
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 of 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 of 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, ...