Datum und Zeitfunktionen
![[Bildschirmfoto]
Datum und Zeitfunktionen [Bildschirmfoto]
Datum und Zeitfunktionen](img/datum-zeitfunktion.png)
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: 28.11.2023 14:21:09
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 | @598 | Swatch-Internet-Zeit (Beat) Siehe: de.wikipedia.org/Swatch |
c | 2023-11-28T14:21:09+01:00 | ISO-8601 formatiertes Datum | |
d | 01 bis 31 | 28 | Tag des Monats, 2-stellig mit führender Null |
D | Mon bis Sun | Tue | Tag der Woche als Abkürzung mit drei Buchstaben |
e | Europe/Paris | Europe/Berlin | Zeitzone |
F | January bis December | November | Monat als ganzes Wort |
g | 1 bis 12 | 2 | 12-Stunden-Format, ohne führende Nullen |
G | 0 bis 23 | 14 | 24-Studen-Format, ohne führende Nullen |
h | 01 bis 12 | 02 | 12-Studen-Format, mit führende Nullen |
H | 00 bis 23 | 14 | 24-Studen-Format, mit führende Nullen |
i | 00 bis 59 | 21 | Minuten mit führenden Nullen |
I | 1 bei Sommerzeit, ansonsten 0 | 0 | Fällt ein Datum in die Sommerzeit |
j | 1 bis 31 | 28 | Tag des Monats ohne führende Nullen* |
l | Sunday bis Saturday | Tuesday | 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 | 2 | Numerische Repräsentation des Wochentages (1 für Montag bis 7 für Sonntag) |
o | 2023 | 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 | Tue, 28 Nov 2023 14:21:09 +0100 | RFC 822 formatiertes Datum | |
s | 00 bis 59 | 09 | 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 | 000000 | Millisekunden | |
U | 1701177669 | Sekunden seit Beginn des UNIX-Zeit-Codes (January 1 1970 00:00:00 GMT) | |
w | 0 (für Sonntag) bis 6 (für Samstag) | 2 | Numerischer Tag der Woche |
W | 48 | ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag | |
Y | Bsp: 1997 oder 2005 | 2023 | Vierstellige Ausgabe der Jahreszahl |
y | Bsp: 97 oder 05 | 23 | Zweistellige Ausgabe der Jahreszahl |
z | 0 bis 365 | 331 | Der Tag des Jahres |
Z | 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 🗓️ 28.11.2023 🕙 14:21 Uhr
🌍 America/New_York 🗓️ 28.11.2023 🕙 08:21 Uhr
🌍 Africa/Nairobi 🗓️ 28.11.2023 🕙 16:21 Uhr
🌍 Asia/Tokyo 🗓️ 28.11.2023 🕙 22:21 Uhr
🌍 Pacific/Auckland 🗓️ 29.11.2023 🕙 02:21 Uhr
🌍 Indian/Cocos 🗓️ 28.11.2023 🕙 19:51 Uhr
Funktion: strtotime()
Beispiel: <?php echo date("d.m.Y", strtotime("Sunday October 2023")); ?>
Gibt das Datum des ersten Sonntags im Oktober (2023) aus:
01.10.2023
Weitere Beispiele:
<?php $zeit = mktime(0,0,0, 12, 6, 2023); // 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.2023
20.12.2023
06.07.2023
08.12.2023
11.12.2023
03.12.2023
15.12.2023 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, |
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