Участник:Стопарь/localizetime.js

Материал из Википедии — свободной энциклопедии
// var myTZShift = 4;
// var myTZName=' (MSD)';

var monthnames = {
  "января"  : "01",
  "февраля" : "02",
  "марта"   : "03",
  "апреля"  : "04",
  "мая"     : "05",
  "июня"    : "06",
  "июля"    : "07",
  "августа" : "08",
  "сентября": "09",
  "октября" : "10",
  "ноября"  : "11",
  "декабря" : "12"  
};

if ((mw.config.get('wgNamespaceNumber') % 2 || mw.config.get('wgNamespaceNumber')==4) && mw.config.get('wgAction')=='view') {
 if (!window.myTZShift) myTZShift = parseInt(fetchTimezone().split(':')[0]);
 if (!window.myTZName) myTZName = "";
 addOnloadHook (changeTimeStamps)
}
function padl0w2 (expr) {
  return expr <= 9 ?  '0'+expr : expr;
}
function changeTimeStamps(){
 var body = document.getElementById('bodyContent');
 body.innerHTML = body.innerHTML.replace(
  / (\d\d):(\d\d), (\d\d?) (\S{3,9}) (20\d\d) \((UTC)\)/g, 
  function(str, hr, min, day, month, year, timezone){
   var utc_ref = year + monthnames[month] + padl0w2(day) + hr + min + '59';
   hr = parseInt(hr) + myTZShift;
   if (hr > 23)     { hr -= 24; day++ }
   else if (hr < 0) { hr += 24; day-- }
   if (hr <= 9) hr = '0' + hr;
   return ' <a style="border-bottom:1px dotted gray" href="http://ru.wikipedia.org/w/index.php?title='+mw.config.get('wgPageName')+'&offset='
        + utc_ref + '&limit=1&action=history">'
    +hr+':'+min+', '+day+' '+month+' '+year+myTZName+'</a>';
 })
}