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: 21.08.2025 15:49:57
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 | @618 | Swatch-Internet-Zeit (Beat) Siehe: de.wikipedia.org/Swatch |
| d | 01 bis 31 | 21 | 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 | August | Monat als ganzes Wort |
| g | 1 bis 12 | 3 | 12-Stunden-Format, ohne führende Nullen |
| G | 0 bis 23 | 15 | 24-Studen-Format, ohne führende Nullen |
| h | 01 bis 12 | 03 | 12-Studen-Format, mit führende Nullen |
| H | 00 bis 23 | 15 | 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 | 21 | 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 | 08 | Monat als Zahl, mit führenden Nullen |
| M | Jan bis Dec | Aug | Monatsname als Abkürzung mit drei Buchstaben |
| n | 1 bis 12 | 8 | 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 | +0200 | Zeitunterschied zur Greenwich Mean Time (GMT) in Stunden |
| r | Wed, 21 Aug 2025 15:49:57 +0200 | RFC 822 formatiertes Datum | |
| s | 00 bis 59 | 57 | Sekunden, mit führenden Nullen |
| S | st, nd, rd oder th | st | Anhang der englischen Aufzählung für einen Monat, zwei Zeichen |
| t | 28 bis 31 | 31 | Anzahl der Tage in einem Monat |
| T | EST, MDT, ... | CEST | Zeitzoneneinstellung des Rechners |
| U | 1566395397 | 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 | 34 | 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 | 232 | 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: Mittwoch, der 21 August 2025
| 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 | Aug | Abgekürzter Monatsname |
| %B | January, July, December | August | Unkekürzter Monatsname |
| %c | Sun Jul 1 12:14:45 2007 | Mi 21 Aug 2025 15:49:57 CEST | Datums- und Zeitangabe |
| %C | 00 - 99 | 20 | Ausgabe des jahrhunderts |
| %d | 01 - 31 | 21 | Aktueller Tag des Monats |
| %D | 11/18/07 | 08/21/19 | Ausgabe des aktuellen Datums (Monat/Tag/Jahr) |
| %e | 0 - 31 | 21 | Tag des Monats (Dezimalwert) einstelligen Werten wird ein Leerzeichen vorangestellt. |
| %h | Jul | Aug | Abgekürzter Monatsname (so wie %b) |
| %H | 00 - 23 | 15 | Stunde als Zahl im 24-Stunden-Format |
| %I | 01 - 12 | 03 | Stunde als Zahl im 12-Stunden-Format |
| %j | 001 - 366 | 233 | Tag des Jahres als Zahl |
| %m | 01 - 12 | 08 | Monat als Zahl |
| %M | 37 | 49 | Minute als Dezimalwert |
| %n | Neue Zeile | ||
| %p | am / pm (dt: vorm./nachm.) | Ausgabe der Tageszeit | |
| %r | 03:49:57 | Zeit "am" oder "pm"-Formatierung | |
| %R | 15:49 | Zeit in der 24-Stunden-Formatierung | |
| %S | 0 - 59 | 57 | Sekunden als Dezimal-Wert |
| %t | Tabulator | ||
| %T | 15:22:45 | 15:49:57 | 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 | 33 | Akt. Woche als Zahlenwert, beginnend mit dem ersten Sonntag im Jahr |
| %V | 34 | Kalenderwoche nach ISO: 8601:1988 | |
| %w | 0 - 6 | 3 | Wochentag als Dezimal-Wert |
| %W | 33 | Akt. Woche als Zahlenwert, beginnend mit dem ersten Montag im Jahr | |
| %x | 21.08.2025 | Aktuelles Datum | |
| %X | 15:49:57 | Aktuelle Uhrzeit | |
| %y | 00 - 99 | 19 | Jahr als 2-stellige Zahl |
| %Y | 2007 | 2019 | Jahr als 4-stellige Zahl |
| %Z | CEST | 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.2025
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.2025
20.12.2025
06.07.2026
06.12.2025
09.12.2025
01.12.2025
| 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 |
Tipp
Berechnungen mit dem Datum - Feiertage, Mondphase, Wochentag, Sonnenaufgang und Sonnenuntergang, Julianisches Datum, Sternzeichen, ...