Datum und Zeitfunktionen

[Bildschirmfoto / Grafik]
 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: 23.01.2022 16:28:56

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 @686 Swatch-Internet-Zeit (Beat) Siehe: de.wikipedia.org/Swatch
c   2022-01-23T16:28:56+01:00 ISO-8601 formatiertes Datum
d 01 bis 31 23 Tag des Monats, 2-stellig mit führender Null
D Mon bis Sun Sun Tag der Woche als Abkürzung mit drei Buchstaben
e Europe/Paris Europe/Berlin Zeitzone
F January bis December January Monat als ganzes Wort
g 1 bis 12 4 12-Stunden-Format, ohne führende Nullen
G 0 bis 23 16 24-Studen-Format, ohne führende Nullen
h 01 bis 12 04 12-Studen-Format, mit führende Nullen
H 00 bis 23 16 24-Studen-Format, mit führende Nullen
i 00 bis 59 28 Minuten mit führenden Nullen
I 1 bei Sommerzeit, ansonsten 0 0 Fällt ein Datum in die Sommerzeit
j 1 bis 31 23 Tag des Monats ohne führende Nullen*
l Sunday bis Saturday Sunday Ausgeschriebener Tag der Woche
L 1 für ein Schaltjahr, ansonsten 0 0 Schaltjahr oder nicht
m 01 bis 12 01 Monat als Zahl, mit führenden Nullen
M Jan bis Dec Jan Monatsname als Abkürzung mit drei Buchstaben
n 1 bis 12 1 Monatszahl, ohne führende Nullen
N 1 bis 7 7 Numerische Repräsentation des Wochentages (1 für Montag bis 7 für Sonntag)
o 2022 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   Sun, 23 Jan 2022 16:28:56 +0100 RFC 822 formatiertes Datum
s 00 bis 59 56 Sekunden, mit führenden Nullen
S st, nd, rd oder th rd 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   000000 Millisekunden
U   1642951736 Sekunden seit Beginn des UNIX-Zeit-Codes (January 1 1970 00:00:00 GMT)
w 0 (für Sonntag) bis 6 (für Samstag) 0 Numerischer Tag der Woche
W   03 ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag
Y Bsp: 1997 oder 2005 2022 Vierstellige Ausgabe der Jahreszahl
y Bsp: 97 oder 05 22 Zweistellige Ausgabe der Jahreszahl
z 0 bis 365 22 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
$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
---

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

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

$date = date_create("now", timezone_open("Europe/Berlin"));
?>

<?php
$timezones = array("America/New_York", "Europe/Berlin", "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>';
}
?>

America/New_York = 23.01.2022 10:28 Uhr
Europe/Berlin = 23.01.2022 16:28 Uhr
Asia/Tokyo = 24.01.2022 00:28 Uhr
Pacific/Auckland = 24.01.2022 04:28 Uhr

Funktion: strtotime()

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

Weitere Beispiele:

<?php
$zeit = mktime(0,0,0,   12, 6, 2022); // 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.2022
20.12.2022
06.07.2022
09.12.2022
12.12.2022
04.12.2022

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
 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

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