Skip to content

Instantly share code, notes, and snippets.

@radarin
Last active February 5, 2019 21:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save radarin/b936e4b4635f1a58b8aece7465ba0fb2 to your computer and use it in GitHub Desktop.
Save radarin/b936e4b4635f1a58b8aece7465ba0fb2 to your computer and use it in GitHub Desktop.
Letzte Änderung eines Beitrages/Seite
<?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