Benutzer:Schnark/letzteredit.js
Erscheinungsbild
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/***********************************************************
* *
* ACHTUNG! *
* *
* Dieses Skript wird nicht weiter gepflegt! Eine neue *
* Version befindet sich unter *
* [[Benutzer:Schnark/js/letzeredit.js]] *
***********************************************************/
function datumzustring(jahr, monat, tag, stunde, minute, sekunde) {
var jetzt = new Date();
var letzter_edit = new Date(jahr, monat, tag, stunde-jetzt.getTimezoneOffset() / 60, minute, sekunde);
var monate = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
var diff = jetzt.getTime() - letzter_edit.getTime();
var l_e_tag = new Date(letzter_edit.getFullYear(), letzter_edit.getMonth(), letzter_edit.getDate());
var j_tag = new Date(jetzt.getFullYear(), jetzt.getMonth(), jetzt.getDate());
var difftage = Math.round((j_tag.getTime() - l_e_tag.getTime()) / (24*60*60*1000));
var ausgabe = "";
if (diff <= 6*60*60*1000) {
//vor max. 6 Stunden
var minuten = Math.round(diff/60000);
var stunden = Math.floor(minuten/60);
minuten -= stunden*60;
ausgabe = "vor ";
ausgabe += (stunden > 1) ? stunden+" Stunden " : ((stunden == 1) ? "1 Stunde " : "");
ausgabe += (minuten == 1) ? "1 Minute" : minuten+" Minuten";
}
else {
if (difftage <= 1) {
//heute oder gestern
ausgabe = (difftage == 0) ? "heute" : "gestern";
ausgabe += " um " + letzter_edit.getHours() + ":";
ausgabe += (letzter_edit.getMinutes()<10) ? "0" : "";
ausgabe += letzter_edit.getMinutes();
}
else
{
if (difftage <= 10) {
//vor max. 10 Tagen
ausgabe = "vor " + difftage + " Tagen";
}
else
{
if (difftage <= 100) {
//vor max. 100 Tagen
ausgabe = "am " + letzter_edit.getDate() + ". " + monate[letzter_edit.getMonth()] + " " + letzter_edit.getFullYear()
}
else
{
//vor mehr als 100 Tagen
ausgabe = "im " + monate[letzter_edit.getMonth()] + " " + letzter_edit.getFullYear();
}
}
}
}
return "(zuletzt aktiv " + ausgabe + ")";
}
var wgNamespaceNumber = mw.config.get('wgNamespaceNumber');
if (wgNamespaceNumber==2 || wgNamespaceNumber == 3) {
$(function() {
var wgTitle = mw.config.get('wgTitle');
var wgServer = mw.config.get('wgServer');
var benutzer=wgTitle.replace(/\/.+/,'');
var xmlHttp = null;
try {
// Mozilla, Opera, Safari sowie Internet Explorer (ab v7)
xmlHttp = new XMLHttpRequest();
} catch(e) {
try {
// MS Internet Explorer (ab v6)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try {
// MS Internet Explorer (ab v5)
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xmlHttp = null;
}
}
}
if (xmlHttp) {
xmlHttp.open("GET", wgServer + "/w/api.php?action=query&list=usercontribs&uclimit=1&ucprop=timestamp&format=xml&ucuser=" + benutzer, true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
datum=xmlHttp.responseText.match(/timestamp="[^"]*"/);
if (datum) {
datum=datum[0];
datum=datum.slice(11,datum.length-1);
/^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z$/.exec(datum);
benutzer=datumzustring(RegExp.$1, RegExp.$2-1, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6);}
else benutzer="(noch nie aktiv)";
document.getElementById("firstHeading").innerHTML += "<small> "+benutzer+"</small>";
}
};
xmlHttp.send(null);
}
});
}