User:Blue-Haired Lawyer/localise dates.js

function replaceDates(ignore, time, day, month, year) { var then = new Date(month + " " + day + ", " + year + " " + time + ":" + "00 UTC"); var diff = getDaysSince1970(now) - getDaysSince1970(then);

var lhour = then.getHours; var merdian = 'am';

if(lhour > 11) merdian = 'pm'; if(lhour == 0) lhour = 12; if(lhour > 12) lhour -= 12;

var ltime = lhour + ":" + pad(then.getMinutes) + " " + merdian; // local

if(diff == 0) { return "Today, " + ltime; } else if(diff == 1) { return "Yesterday, " + ltime; } else if(diff > 1 && diff < 7) { return days[then.getDay] + ", " + ltime; } else { return ltime + ", " + then.getDate + " " + months[then.getMonth] + " " + (then.getYear + 1900); } }

function getDaysSince1970(date_obj) { var msecs = date_obj.valueOf; // in UTC msecs -= date_obj.getTimezoneOffset * 60 * 1000; // local time var day = msecs / (24 * 60 * 60 * 1000); day -= day % 1; return day; }

function pad(date_obj) { if(date_obj.valueOf < 10) return "0" + date_obj.valueOf; else return "" + date_obj.valueOf; }

function loopThroughTextNodes(node) { if(node.childNodes && node.childNodes.length && node.childNodes.length > 0) { var i;		for (i=0; i 0) { node.textContent = node.textContent.replace(/(\d\d:\d\d), (\d\d?) ([a-z]{3,9}) (\d\d\d\d) \(UTC\)/ig, replaceDates); } }

var now = new Date; var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];

var talk_page = false; var content_id = ''; var wgNamespaceNumber = mw.config.get('wgNamespaceNumber'); var wgAction = mw.config.get('wgAction'); if(wgNamespaceNumber > 0 && (wgNamespaceNumber < 6 || wgNamespaceNumber % 2 == 1) && ( wgAction == "view" || wgAction == "edit" || wgAction == "submit") ) { if(document.getElementById('wpTextbox1') || document.getElementById('wpTextbox2')) { if(document.getElementById('wikiPreview')) { talk_page = true; content_id = 'wikiPreview'; }	} else { talk_page = true; content_id = 'bodyContent'; } }

if(talk_page && document.getElementById(content_id)) { loopThroughTextNodes(document.getElementById(content_id)); }