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)
2022-07-05 02:03:42 <?=datetime('2022-07-05 02:03:42');?>
➧ Heute um 02:03 Uhr
2022-07-05 02:03:42 <?=datetime('2022-07-05 02:03:42', true, true);?>
➧ Heute um 02:03 Uhr (vor 12 Minuten)
2022-07-4 02:15:42 <?=datetime('2022-07-4 02:15:42');?>
➧ Gestern um 02:15 Uhr
2022-07-3 02:15:42 <?=datetime('2022-07-3 02:15:42');?>
➧ Vorgestern um 02:15 Uhr
2022-07-3 02:15:42 <?=datetime('2022-07-3 02:15:42', false, true);?>
➧ Vorgestern um 02:15 Uhr (vor 2 Tagen)
2022-08-14 02:15:42 <?=datetime('2022-08-14 02:15:42');?>
➧ am 14.8.2022
2022-08-14 02:15:42 <?=datetime('2022-08-14 02:15:42', true);?>
➧ am Sonntag, den 14 August 2022
2022-07-05 06:15:42 <?=datetime('2022-07-05 06:15:42', true, true);?>
➧ Heute um 06:15 Uhr (in 4 Stunden)
2022-07-06 02:15:42 <?=datetime('2022-07-06 02:15:42', true, true);?>
➧ Morgen um 02:15 Uhr (in 1 Tag)
2022-07-07 02:15:42 <?=datetime('2022-07-07 02:15:42', true, true);?>
➧ Übermorgen um 02:15 Uhr (in 2 Tagen)
2022-07-10 02:15:42 <?=datetime('2022-07-10 02:15:42', true, true);?>
➧ am Sonntag, den 10 Juli 2022 (in 5 Tagen)
2022-08-14 02:15:42 <?=datetime('2022-08-14 02:15:42', true, true);?>
➧ am Sonntag, den 14 August 2022 (in 1 Monat)
2022-09-05 02:15:42 <?=datetime('2022-09-05 02:15:42', true, true);?>
➧ am Montag, den 5 September 2022 (in 2 Monaten)
2030-10-05 02:15:42 <?=datetime('2030-10-05 02:15:42', true, true);?>
➧ am Samstag, den 5 Oktober 2030 (in 8 Jahren)
Letzte Aktualisierung: am Dienstag, den 10 Mai 2022 (vor 2 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)];
}
?>
Bausteine Alle Anzeigen
Eine zufällige Auswahl von Codeschnipseln
aus den Bereichen HTML, CSS,
PHP, JavaScript und MySQL.
<head> Kopfdaten
PHP - Datei ab einer gewissen Dateigröße automatisch mit Datum umbenennen