Last active
February 5, 2019 21:31
-
-
Save radarin/b936e4b4635f1a58b8aece7465ba0fb2 to your computer and use it in GitHub Desktop.
Letzte Änderung eines Beitrages/Seite
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
Quelle: Zeile 11: Thomas Weiland, http://www.weiland-thomas.de, 2016 | |
GNU General Public License | |
Modifiziert: René A. Da Rin, www.darin.ch, 29.1.2019 | |
*/ | |
// Die Funktion radLastChange() zeigt Datum und Uhrzeit der letzten Änderung an. | |
add_shortcode('rad-last-change', 'radLastChange'); | |
function radLastChange() { | |
global $wpdb; | |
$result = $wpdb->get_var("SELECT UNIX_TIMESTAMP(post_modified) as post_modified FROM $wpdb->posts WHERE post_status = 'publish' ORDER BY post_modified DESC LIMIT 1"); | |
// Zeitzone, Sommer-/Winterzeit korrigieren (1 Stunde = 3600 Sekunden) | |
$result = $result + 3600; | |
// eine deutsche WP-Installation kann auch mit setlocale() englische Wochentage ausgeben. | |
$weekday = strftime( '%u', $result ); | |
if ($weekday == 1){ $wd = "Montag";} | |
elseif ($weekday == 2){ $wd = "Dienstag";} | |
elseif ($weekday == 3){ $wd = "Mittwoch";} | |
elseif ($weekday == 4){ $wd = "Donnerstag";} | |
elseif ($weekday == 5){ $wd = "Freitag";} | |
elseif ($weekday == 6){ $wd = "Samstag";} | |
elseif ($weekday == 7){ $wd = "Sonntag";} | |
$lastmod = $wd .", ". strftime( '%d.%m.%Y - %H:%M:%S', $result ); | |
return $lastmod; | |
} | |
/* | |
d - Tag, Zahl, 2-stellig 01-31 | |
j - Tag, Zahl, 1/2-stellig 1-31 | |
m - Monat, Zahl, 2-stellig 01-12 | |
n - Monat, Zahl, 1/2-stellig 1-12 | |
y - Jahr, Zahl, 2-stellig 99 oder 03 | |
Y - Jahr, Zahl, 4-stellig 1999 oder 2003 | |
G - Stunden, Zahl, 1/2-stellig 0-23 | |
H - Stunden, Zahl, 2-stellig 00-23 | |
M - Minuten, Zahl, 2-stellig 00-59 | |
S - Sekunden, Zahl, 2-stellig 00-59 (ohne Gewähr) | |
Referenz: http://php.net/manual/de/function.strftime.php | |
*/ | |
// Die Funktion radLastChangeToday() gibt an, vor wievielen Tagen die letzte Änderung statt gefunden hat. | |
add_shortcode('rad-last-change-today', 'radLastChangeToday'); | |
function radLastChangeToday() { | |
global $wpdb; | |
$result = $wpdb->get_var("SELECT UNIX_TIMESTAMP(post_modified) as post_modified FROM $wpdb->posts WHERE post_status = 'publish' ORDER BY post_modified DESC LIMIT 1"); | |
// Zeitzone, Sommer-/Winterzeit korrigieren (1 Stunde = 3600 Sekunden) | |
$result = $result + 3600; // Timestamp letzte Aktualisierung | |
$jetzt .= strtotime("now"); // Timestamp aktuelle Zeit | |
// Timestamp in Datum umwandeln | |
$datumVon = strftime( '%d/%m/%Y', $result ); | |
$datumBis = strftime( '%d/%m/%Y', $jetzt ); | |
// Rechenbare Formate | |
$myArrayDatumVon = explode("/", $datumVon); | |
$datumVon = mktime(0,0,0,$myArrayDatumVon[1],$myArrayDatumVon[0],$myArrayDatumVon[2]); | |
$myArrayDatumBis = explode("/", $datumBis); | |
$datumBis = mktime(0,0,0,$myArrayDatumBis[1],$myArrayDatumBis[0],$myArrayDatumBis[2]); | |
// Differenz in Tagen | |
$differenztage = ($datumBis-$datumVon) / (3600*24); | |
// Ausgabe formatieren, heute, gestern oder vor x Tagen, Wochen, Monaten, Jahr | |
if ( $differenztage == 0 ){ $ausgabe = "heute";} | |
elseif ( $differenztage == 1 ){ $ausgabe = "gestern";} | |
elseif ( $differenztage > 1 OR $differenztage < 7 ){ $ausgabe="vor ".$differenztage." Tagen";} | |
elseif ( $differenztage >= 7 ){ $ausgabe = "vor 1 Woche";} | |
elseif ( $differenztage >= 14){ $ausgabe = "vor 2 Wochen";} | |
elseif ( $differenztage >= 21){ $ausgabe = "vor 3 Wochen";} | |
elseif ( $differenztage >= 30){ $ausgabe = "vor 1 Mmonat";} | |
elseif ( $differenztage >= 60){ $ausgabe = "vor 2 Monaten";} | |
elseif ( $differenztage >= 90){ $ausgabe = "vor 3 Monaten";} | |
elseif ( $differenztage >= 120){ $ausgabe = "vor 4 Monaten";} | |
elseif ( $differenztage >= 150){ $ausgabe = "vor 5 Monaten";} | |
elseif ( $differenztage >= 180){ $ausgabe = "vor 6 Monaten";} | |
elseif ( $differenztage >= 210){ $ausgabe = "vor 7 Monaten";} | |
elseif ( $differenztage >= 240){ $ausgabe = "vor 8 Monaten";} | |
elseif ( $differenztage >= 270){ $ausgabe = "vor 9 Monaten";} | |
elseif ( $differenztage >= 300){ $ausgabe = "vor 10 Monaten";} | |
elseif ( $differenztage >= 330){ $ausgabe = "vor 11 Monaten";} | |
elseif ( $differenztage >= 360){ $ausgabe = "vor 1 Jahr";} | |
elseif ( $differenztage >= 390){ $ausgabe = "vor über einem Jahr";} | |
else { $ausgabe = "Sorry, Fehler in der Berechnung...";} | |
// Ausgabe | |
return $ausgabe; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment