Datum und Zeitfunktionen

[Bildschirmfoto] Datum und Zeitfunktionen

Ausgabe von Datum, Uhrzeit und anderen Datumsformatierungen.

Zeitzone setzen

Wichtig ist, das im PHP-Skript die Zeitzone gesetzt wird. Die Zeitzone können Sie 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: 29.03.2024 15:09:33

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 @ 631 Swatch-Internet-Zeit (Beat) de.wikipedia.org/Swatch
c (String) 2024-03-29T15:09:33+01:00 ISO-8601 formatiertes Datum
d 01 bis 31 29 Tag des Monats, 2-stellig mit führender Null
D Mon bis Sun Fri Tag der Woche (englisch) als Abkürzung mit drei Buchstaben
e Europe/Paris Europe/Berlin Zeitzone
F January bis December March Monat (englisch) 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 09 Minuten mit führenden Nullen
I 1 bei Sommerzeit, ansonsten 0 0 Fällt ein Datum in die Sommerzeit
j 1 bis 31 29 Tag des Monats ohne führende Nullen
l Sunday bis Saturday Friday Tag der Woche (englisch) ausgeschrieben
L 1 für ein Schaltjahr, ansonsten 0 1 Schaltjahr oder nicht
m 01 bis 12 03 Monat als Zahl, mit führenden Nullen
M Jan bis Dec Mar Monatsname (englisch) als Abkürzung mit drei Buchstaben
n 1 bis 12 3 Monatszahl, ohne führende Nullen
N 1 bis 7 5 Numerische Repräsentation des Wochentages (1 für Montag bis 7 für Sonntag)
o Bsp: 1997 oder 2005 2024 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 Bsp: +0200 +0100 Zeitunterschied zur Greenwich Mean Time (GMT) in Stunden
r (String) Fri, 29 Mar 2024 15:09:33 +0100 RFC 822 formatiertes Datum
s 00 bis 59 33 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 31 Anzahl der Tage in einem Monat
T EST, MDT, ... CET Zeitzoneneinstellung des Rechners
u (Int) 000000 Millisekunden
U Bsp: 1699355428 1711721373 Sekunden seit Beginn des UNIX-Zeit-Codes (January 1 1970 00:00:00 GMT)
w 0 für Sonntag bis 6 für Samstag 5 Numerischer Tag der Woche
W Bsp: 12 13 ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag
Y Bsp: 1997 oder 2005 2024 Vierstellige Ausgabe der Jahreszahl
y Bsp: 97 oder 05 24 Zweistellige Ausgabe der Jahreszahl
z 0 bis 365 88 Der Tag des Jahres
Z (Int) 3600 Offset der Zeitzone in Sekunden

Funktion: date_create()

<?php
// Das "DateTimeInterface" Interface (Beispiele)

date_default_timezone_set("Europe/Berlin"); // Zeitzone setzen

$date = date_create("now"); // Aktuelles Datum und Uhrzeit
$year = date_format($date, "Y");
$month = date_format($date, "m");
$day = date_format($date, "d");
$hour = date_format($date, "H");
$minute = date_format($date, "i");
$second = date_format($date, "s");
---

$date = date_create("2000-01-01 03:00:00"); // Ein bestimmtes Datum und Uhrzeit
$date = date_create("now", timezone_open("Europe/Berlin")); // Das aktuelle Datum mit Uhrzeit

$month = date_format($date, "n") + 1; // Plus einen Monat
$zone = date_format($date, "e"); // Zeitzone (Europe/Berlin)
$wochentag = date_format($date, "N"); // Numerische Repräsentation des Wochentages (1 für Montag bis 7 für Sonntag)

$monat = date_format($date, "F"); // Monat als ganzes Wort (January- December)
$monatslaenge = date_format($date, "t"); // Anzahl der Tage in einem Monat

$ersterwochentag = date_format(date_modify(clone $date, 'first day of this month'), "w"); // Erster Wochentag im Monat
$altmonatslaenge = date_format(date_modify(clone $date, '-1 month'), "t"); // Länge des vorherigen Monats
---

$date = date_create_from_format("j-M-Y", "15-Mar-2022");

$date = date_create("2013-03-15 23:40:00", timezone_open("Europe/Berlin"));

?>

Beispiel

<?php $timezones = array("Europe/Berlin", "America/New_York", "Africa/Nairobi", "Asia/Tokyo", "Pacific/Auckland"); foreach ($timezones as $timezone) { $date = date_create("now", timezone_open($timezone)); echo $timezone .' = ' . date_format($date, "d.m.Y - H:i") . ' Uhr<br>'; } ?>
🌍 Europe/Berlin 🗓️ 29.03.2024 🕙 15:09 Uhr
🌍 America/New_York 🗓️ 29.03.2024 🕙 10:09 Uhr
🌍 Africa/Nairobi 🗓️ 29.03.2024 🕙 17:09 Uhr
🌍 Asia/Tokyo 🗓️ 29.03.2024 🕙 23:09 Uhr
🌍 Pacific/Auckland 🗓️ 30.03.2024 🕙 03:09 Uhr
🌍 Indian/Cocos 🗓️ 29.03.2024 🕙 20:39 Uhr

Funktion: strtotime()

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

Weitere Beispiele:

<?php
$zeit = mktime(0,0,0,   12, 6, 2024); // 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)) . "<br>";
echo date("d.m.Y H:i:s", strtotime("+1 week 2 days 4 hours 2 seconds", $zeit));
?>

Ausgabe:

07.12.2024
20.12.2024
06.07.2024
06.12.2024
09.12.2024
01.12.2024
15.12.2024 04:00:02

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, 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 - saturday, sun - sat, January - December, Jan - Dec
 Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
 January, February, March, April, May, June, July, August, September, October, November, December.

Weitere Beispiele:

In den folgenden Beispielen habe ich teilweise 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 letzte 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"));
echo date("j, d-M-Y", strtotime("first monday of january 2015")); // Alternative
// 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 des 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

// Zeige den zweiten Samstag im Juni
echo date("d-M-Y", strtotime("second sat of june 2015"));
// Ausgabe: 13-Jun-2015

// Zeige den vierten Samstag im Juni
echo date("d-M-Y", strtotime("fourth sat of june 2015"));
// Ausgabe: 27-Jun-2015

Tipps

Berechnungen mit dem Datum - Feiertage, Mondphase, Wochentag, Sonnenaufgang und Sonnenuntergang, Julianisches Datum, Sternzeichen, ...
Datum ab einem bestimmten Tag ausgeben
Montag bis Freitag der aktuellen Woche anzeigen
Tage zwischen zwei Datumsangaben berechnen