PHP - Datum und Uhrzeit formatiert ausgeben
Möchte man das Datum mit mehr Informationen anzeigen (Vorgestern
, Gestern
, Heute
, vor 3 Jahren
, vor 12 Minuten
, in 8 Minuten
, in 5 Tagen
, in 2 Monaten
, ... etc.)
dann ist diese Funktion hilfreich.
Die Eingabe erfolgt im Format: YYYY-MM-DD HH:II:SS
(ISO 8601)
Folgende Zeitangaben werden ausgeben, hier einige Beispiele:
2018-01-04 22:30:07 <?=datetime('2018-01-04 22:30:07');?>
➧ am 4.1.2018
2018-01-04 22:30:07 <?=datetime('2018-01-04 22:30:07', true);?>
➧ am Donnerstag, den 4 Januar 2018
2018-01-04 22:30:07 <?=datetime('2018-01-04 22:30:07', true, true);?>
➧ am Donnerstag, den 4 Januar 2018 (vor 5 Jahren)
2023-05-30 19:07:21 <?=datetime('2023-05-30 19:07:21');?>
➧ Heute um 19:07 Uhr
2023-05-30 19:07:21 <?=datetime('2023-05-30 19:07:21', true, true);?>
➧ Heute um 19:07 Uhr (vor 12 Minuten)
2023-05-29 19:19:21 <?=datetime('2023-05-29 19:19:21');?>
➧ Gestern um 19:19 Uhr
2023-05-28 19:19:21 <?=datetime('2023-05-28 19:19:21');?>
➧ Vorgestern um 19:19 Uhr
2023-05-28 19:19:21 <?=datetime('2023-05-28 19:19:21', false, true);?>
➧ Vorgestern um 19:19 Uhr (vor 2 Tagen)
2023-07-09 19:19:21 <?=datetime('2023-07-09 19:19:21');?>
➧ am 9.7.2023
2023-07-09 19:19:21 <?=datetime('2023-07-09 19:19:21', true);?>
➧ am Sonntag, den 9 Juli 2023
2023-05-30 23:19:21 <?=datetime('2023-05-30 23:19:21', true, true);?>
➧ Heute um 23:19 Uhr (in 4 Stunden)
2023-05-31 19:19:21 <?=datetime('2023-05-31 19:19:21', true, true);?>
➧ Morgen um 19:19 Uhr (in 1 Tag)
2023-06-01 19:19:21 <?=datetime('2023-06-01 19:19:21', true, true);?>
➧ Übermorgen um 19:19 Uhr (in 2 Tagen)
2023-06-04 19:19:21 <?=datetime('2023-06-04 19:19:21', true, true);?>
➧ am Sonntag, den 4 Juni 2023 (in 5 Tagen)
2023-07-09 19:19:21 <?=datetime('2023-07-09 19:19:21', true, true);?>
➧ am Sonntag, den 9 Juli 2023 (in 1 Monat)
2023-07-31 19:19:21 <?=datetime('2023-07-31 19:19:21', true, true);?>
➧ am Montag, den 31 Juli 2023 (in 2 Monaten)
2031-08-30 19:19:21 <?=datetime('2031-08-30 19:19:21', true, true);?>
➧ am Samstag, den 30 August 2031 (in 8 Jahren)
Letzte Aktualisierung: am Mittwoch, den 11 Januar 2023 (vor 5 Monaten)
Letzte Aktualisierung:
<?php
$aktuell = date("Y-m-d H:i:s", filemtime(basename($_SERVER["SCRIPT_NAME"])));
echo datetime($aktuell, true, true);
?>
Die Funktion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
// Datum und Uhrzeit formatiert ausgeben
// $datetime = YYYY-MM-DD HH:II:SS
function datetime($datetime,
$wochentagMonat = false,
$niceDate = false) {
sscanf($datetime, "%4s-%2s-%2s %2s:%2s:%2s", $jahr, $monat, $tag, $stunde, $minute, $sekunde);
if ($niceDate) {
$niceDate = ' (' . niceDate($tag, $monat, $jahr, $stunde, $minute, $sekunde) . ')';
}
else {
$niceDate = '';
}
$datum = mktime(0, 0, 0, date($monat), date($tag), date($jahr));
// Heute
if ($datum == mktime(0, 0, 0, date("m"), date("d"), date("Y"))) {
return 'Heute um ' . $stunde . ':' . $minute . ' Uhr' . $niceDate;
}
// Gestern
else if ($datum == mktime(0, 0, 0, date("m"), date("d") - 1, date("Y"))) {
return 'Gestern um ' . $stunde . ':' . $minute . ' Uhr' . $niceDate;
}
// Vorgestern
else if ($datum == mktime(0, 0, 0, date("m"), date("d") - 2, date("Y"))) {
return 'Vorgestern um ' . $stunde . ':' . $minute . ' Uhr' . $niceDate;
}
// Morgen
else if ($datum == mktime(0, 0, 0, date("m"), date("d") + 1, date("Y"))) {
return 'Morgen um ' . $stunde . ':' . $minute . ' Uhr' . $niceDate;
}
// Übermorgen
else if ($datum == mktime(0, 0, 0, date("m"), date("d") + 2, date("Y"))) {
return 'Übermorgen um ' . $stunde . ':' . $minute . ' Uhr' . $niceDate;
}
else {
if ($wochentagMonat == false) {
return 'am ' . floor($tag) . '.' . floor($monat) . '.' . $jahr . $niceDate;
}
else {
return 'am ' . wochentag($tag, $monat, $jahr) . ', den ' . floor($tag) . ' ' . monat($monat) . ' ' . $jahr . $niceDate;
}
}
}
function niceDate($tag, $monat, $jahr, $stunde, $minute, $sekunde) {
$timestamp = mktime($stunde, $minute, $sekunde, $monat, $tag, $jahr);
$difference = time() - $timestamp;
$periods = ["Sekunde",
"Minute",
"Stunde",
"Tage",
"Woche",
"Monate",
"Jahre",
"Jahrzehnte"
];
$lengths = ["60", "60", "24", "7", "4.35", "12", "10"];
if ($difference > 0) {
// Vergangenheit
$ending = "vor";
}
else {
// Zukunft
$difference = -$difference;
$ending = "in";
}
for ($j = 0; $difference >= $lengths[$j]; $j++) {
$difference /= $lengths[$j];
$difference = round($difference);
}
if ($difference != 1) {
$periods[$j] .= "n";
}
else {
if ($periods[$j] == "Woche" ||
$periods[$j] == "Stunde" ||
$periods[$j] == "Minute" ||
$periods[$j] == "Sekunde") {
$periods[$j] = $periods[$j];
}
else {
$periods[$j] = substr($periods[$j], 0, -1);
}
}
return $ending . ' ' . $difference . ' ' . $periods[$j];
}
// Wochentag ermitteln
function wochentag($tag, $monat, $jahr) {
$tage = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
$wt = getdate(mktime(0, 0, 0, $monat, $tag, $jahr));
return $tage[$wt["wday"]];
}
// Monat ermitteln
function monat($monat) {
$monate = [1 => "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September",
"Oktober", "November", "Dezember"];
return $monate[floor($monat)];
}
?>
Siehe auch: Datum und Zeitfunktionen und Berechnungen mit dem Datum
Bausteine Alle Anzeigen
Eine zufällige Auswahl von Codeschnipseln
aus den Bereichen
HTML, CSS,
PHP, JavaScript und
MySQL.
<meta> Meta-Angaben
PHP - Dateien im Verzeichnis vergleichen und kopieren
JavaScript - Den Wert des ausgewählten Optionsfelds auslesen