您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Автоматическая смена и установка часового пояса
当前为
// ==UserScript== // @name Little Doll Lite // @namespace Little Doll Lite // @version 1.0 // @description Автоматическая смена и установка часового пояса // @author Maesta_Nequitia // @match *://2ch.hk/* // @grant GM_addStyle // @icon https://2ch.hk/favicon.ico // @license MIT // ==/UserScript== (function () { 'use strict'; // Получаем текущее время пользователя const userTime = new Date(); // Получаем московское время const moscowTime = new Date().toLocaleString('en-US', {timeZone: 'Europe/Moscow'}); const moscowTimeObj = new Date(moscowTime); // Вычисляем разницу во времени между московским временем и временем пользователя в миллисекундах const timeDifference = userTime - moscowTimeObj; const daysOfWeek = ['Вск', 'Пнд', 'Втр', 'Срд', 'Чтв', 'Птн', 'Суб']; const formatDate = (date) => { const dayOfWeek = daysOfWeek[date.getDay()]; return `${date.getDate().toString().padStart(2, '0')}/${(date.getMonth() + 1).toString().padStart(2, '0')}/${date.getFullYear().toString().slice(-2)} ${dayOfWeek} ${date.getHours().toString().padStart(2, '0')}:${date.getMinutes().toString().padStart(2, '0')}:${date.getSeconds().toString().padStart(2, '0')}`; }; const modifyTime = (element) => { const [datePart, , timePart] = element.textContent.split(' '); const [day, month, year] = datePart.split('/'); const [hours, minutes, seconds] = timePart.split(':'); const originalDateObject = new Date(`20${year}`, month - 1, day, hours, minutes, seconds); // Применяем разницу во времени к времени на форуме const newDateObject = new Date(originalDateObject.getTime() + timeDifference); element.textContent = formatDate(newDateObject); }; const handleMutations = (mutationsList) => { mutationsList.forEach((mutation) => { if (mutation.type === 'childList') { Array.from(mutation.addedNodes) .filter(node => node instanceof Element) .forEach(node => { Array.from(node.getElementsByClassName('post__time')).forEach(modifyTime); }); } }); }; const timeElements = document.querySelectorAll('.post__time'); timeElements.forEach(modifyTime); const observer = new MutationObserver(handleMutations); observer.observe(document.body, { childList: true, subtree: true }); })();