MediaWiki:Test.js: различия между версиями

Страница интерфейса MediaWiki
Нет описания правки
Нет описания правки
 
(не показана 181 промежуточная версия этого же участника)
Строка 1: Строка 1:
function getCurrentDateTime() {
(function(){
    var now = new Date();
if(typeof mw==='undefined') return;
    return now.toLocaleString();
}


function getFormattedTime() {
var map={
    var now = new Date();
"Клише":"#ff4d4d",
    return now.toTimeString().split(' ')[0];
"властью":"#4dff4d",
}
"ответственность":"#4d4dff",
"Стандартные Рабочие Процедуры":"#ff4dff",
"ядерный":"#ffa500",
"станции":"#4dffff",
"ГСБ":"#b84dff",
"диск":"#4dff88",
"СРП/КЗ":"#ffb6c1",
"банановая кожурка":"#ffff4d"
};


function getDayOfWeek() {
function esc(s){return s.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');}
    var days = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
    return days[new Date().getDay()];
}
 
function getMonth() {
    var months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
    return months[new Date().getMonth()];
}


function isLeapYear(year) {
function walk(node){
    return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
if(node.nodeType===3){
var t=node.nodeValue, r=t;
for(var k in map){
r=r.replace(new RegExp(esc(k),'g'),'<span style="color:'+map[k]+'">'+k+'</span>');
}
}
 
if(r!==t){
function getDateDifference(date1, date2) {
var s=document.createElement('span');
    var diff = Math.abs(date1 - date2);
s.innerHTML=r;
    var days = Math.ceil(diff / (1000 * 60 * 60 * 24));
node.parentNode.replaceChild(s,node);
    return days;
}
}
function startClock() {
    setInterval(function() {
        console.clear();
        console.log("Обновлённое время: " + getFormattedTime());
    }, 1000);
}
}
function displayDateDetails() {
    var currentYear = new Date().getFullYear();
    var someDate = new Date(2025, 0, 1);
    console.log("Работает! Текущая дата и время: " + getCurrentDateTime());
    console.log("Текущее время в 24-часовом формате: " + getFormattedTime());
    console.log("Сегодня: " + getDayOfWeek());
    console.log("Месяц: " + getMonth());
    console.log("Текущий год: " + currentYear);
    console.log("Этот год является високосным: " + (isLeapYear(currentYear) ? "Да" : "Нет"));
    console.log("Дней до 1 января 2025 года: " + getDateDifference(new Date(), someDate));
}
}


function addDynamicUpdates() {
var nodes=document.querySelectorAll('.mw-parser-output p, .mw-parser-output li');
    var container = document.createElement("div");
for(var i=0;i<nodes.length;i++){
    container.id = "dynamic-date-info";
var cn=nodes[i].childNodes;
    document.body.appendChild(container);
for(var j=0;j<cn.length;j++) walk(cn[j]);
 
    setInterval(function() {
        var now = new Date();
        container.innerHTML = "<div>Текущее время: " + getFormattedTime() + "</div>" +
                              "<div>Сегодня: " + getDayOfWeek() + ", " + now.getDate() + " " + getMonth() + " " + now.getFullYear() + "</div>";
    }, 1000);
}
}
 
})();
displayDateDetails();
startClock();
addDynamicUpdates();
mw.loader.load('//example.com/Test.js');

Текущая версия от 11:16, 17 января 2026

(function(){
if(typeof mw==='undefined') return;

var map={
"Клише":"#ff4d4d",
"властью":"#4dff4d",
"ответственность":"#4d4dff",
"Стандартные Рабочие Процедуры":"#ff4dff",
"ядерный":"#ffa500",
"станции":"#4dffff",
"ГСБ":"#b84dff",
"диск":"#4dff88",
"СРП/КЗ":"#ffb6c1",
"банановая кожурка":"#ffff4d"
};

function esc(s){return s.replace(/[.*+?^${}()|[\]\\]/g,'\\$&');}

function walk(node){
if(node.nodeType===3){
var t=node.nodeValue, r=t;
for(var k in map){
r=r.replace(new RegExp(esc(k),'g'),'<span style="color:'+map[k]+'">'+k+'</span>');
}
if(r!==t){
var s=document.createElement('span');
s.innerHTML=r;
node.parentNode.replaceChild(s,node);
}
}
}

var nodes=document.querySelectorAll('.mw-parser-output p, .mw-parser-output li');
for(var i=0;i<nodes.length;i++){
var cn=nodes[i].childNodes;
for(var j=0;j<cn.length;j++) walk(cn[j]);
}
})();