Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

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

Страница интерфейса MediaWiki
Новая страница: «Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице: function drawAnalogClock(ctx, radius, date) { ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); ctx.save(); ctx.translate(radius, radius); // Face ctx.beginPath(); ctx.arc(0, 0, radius - 5, 0, 2 * Math.PI); ctx.fillStyle = '#f0f0f0'; ctx.fill(...»
 
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
function drawAnalogClock(ctx, radius, date) {
function updateUTCClockPanel() {
     ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
     const timeEl = document.getElementById('utc-clock-time');
     ctx.save();
     const dateEl = document.getElementById('utc-clock-date');
     ctx.translate(radius, radius);
     if (!timeEl || !dateEl) return;


     // Face
     const now = new Date();
    ctx.beginPath();
    ctx.arc(0, 0, radius - 5, 0, 2 * Math.PI);
    ctx.fillStyle = '#f0f0f0';
    ctx.fill();
    ctx.lineWidth = 4;
    ctx.stroke();


     // Numbers
     const hours = now.getUTCHours().toString().padStart(2, '0');
    ctx.font = radius * 0.15 + "px Arial";
    const minutes = now.getUTCMinutes().toString().padStart(2, '0');
    ctx.textBaseline = "middle";
    const seconds = now.getUTCSeconds().toString().padStart(2, '0');
    ctx.textAlign = "center";
    for (let num = 1; num <= 12; num++) {
        let ang = num * Math.PI / 6;
        ctx.rotate(ang);
        ctx.translate(0, -radius * 0.85);
        ctx.rotate(-ang);
        ctx.fillText(num.toString(), 0, 0);
        ctx.rotate(ang);
        ctx.translate(0, radius * 0.85);
        ctx.rotate(-ang);
    }


     // Time
     timeEl.textContent = `UTC: ${hours}:${minutes}:${seconds}`;
    let hour = date.getUTCHours();
    let minute = date.getUTCMinutes();
    let second = date.getUTCSeconds();


     // Hour hand
     const day = now.getUTCDate().toString().padStart(2, '0');
    hour = hour % 12;
     const month = (now.getUTCMonth() + 1).toString().padStart(2, '0');
     hour = (hour * Math.PI / 6) + (minute * Math.PI / (6 * 60));
     const year = now.getUTCFullYear();
     drawHand(ctx, hour, radius * 0.5, 6);


     // Minute hand
     const weekdays = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
     minute = (minute * Math.PI / 30) + (second * Math.PI / (30 * 60));
     const weekday = weekdays[now.getUTCDay()];
    drawHand(ctx, minute, radius * 0.75, 4);


     // Second hand
     dateEl.textContent = `${weekday}, ${day}.${month}.${year}`;
    second = (second * Math.PI / 30);
    drawHand(ctx, second, radius * 0.85, 2, "#D33");
 
    ctx.restore();
}
}


function drawHand(ctx, pos, length, width, color = "#000") {
setInterval(updateUTCClockPanel, 1000);
    ctx.beginPath();
document.addEventListener('DOMContentLoaded', updateUTCClockPanel);
    ctx.lineWidth = width;
    ctx.lineCap = "round";
    ctx.strokeStyle = color;
    ctx.moveTo(0,

Текущая версия от 21:41, 22 апреля 2025

/* Размещённый здесь код JavaScript будет загружаться пользователям при обращении к каждой странице */
function updateUTCClockPanel() {
    const timeEl = document.getElementById('utc-clock-time');
    const dateEl = document.getElementById('utc-clock-date');
    if (!timeEl || !dateEl) return;

    const now = new Date();

    const hours = now.getUTCHours().toString().padStart(2, '0');
    const minutes = now.getUTCMinutes().toString().padStart(2, '0');
    const seconds = now.getUTCSeconds().toString().padStart(2, '0');

    timeEl.textContent = `UTC: ${hours}:${minutes}:${seconds}`;

    const day = now.getUTCDate().toString().padStart(2, '0');
    const month = (now.getUTCMonth() + 1).toString().padStart(2, '0');
    const year = now.getUTCFullYear();

    const weekdays = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
    const weekday = weekdays[now.getUTCDay()];

    dateEl.textContent = `${weekday}, ${day}.${month}.${year}`;
}

setInterval(updateUTCClockPanel, 1000);
document.addEventListener('DOMContentLoaded', updateUTCClockPanel);