您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Converts dates to your local timezone
当前为
// ==UserScript== // @name StackExchange sites - convert dates to local timezone // @namespace darkred // @description Converts dates to your local timezone // @match *://*.stackoverflow.com/* // @match *://*.stackexchange.com/* // @match *://*.superuser.com/* // @match *://*.stackapps.com/* // @match *://*.askubuntu.com/* // @match *://*.mathoverflow.net/* // @match *://*.serverfault.com/* // @version 1 // @grant none // @require https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment-with-locales.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.4.1/moment-timezone-with-data.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.6/jstz.min.js // ==/UserScript== var dates = document.getElementsByClassName('relativetime'); // tooltip with added timezone: "2015-12-14 14:11:13 +0000" function toTimeZone(time, zone) { var format1 = ('YYYY-MM-DD HH:mm:ss Z'); var format2 = ('YYYY-MM-DD HH:mm:ss'); return moment(time, format1).tz(zone).format(format2); } function getLocalTimezone(){ var tz = jstz.determine(); // Determines the time zone of the browser client return tz.name(); // Returns the name of the time zone eg "Europe/Berlin" } var localTimezone = getLocalTimezone(); function convertTitleDates() { var temp; for (var i = 0; i < dates.length; i++) { // "2015-12-14 14:11:13Z" (the default tooltip) temp = dates[i].title; temp = temp.substring(0, temp.length - 1); temp += ' +0000'; var format0 = ('YYYY-MM-DD HH:mm:ss Z'); if (moment(temp, format0, true).isValid()) { dates[i].title = toTimeZone(temp, localTimezone); // 2015-12-08 10:38:53 // Dec 8 at 10:38 var regex2 = /(.*at\ ).*/; if (dates[i].innerHTML.match(regex2)) { var title = dates[i].title; var month = title.substring(8, 10); // the '8' var time = title.substring(11, 16); // the '10:38' if (month.substring(0, 1) === '0') { // if the 1st digit in month is '0' then dont' use it in the replacing of datetext month = month.substring(1, 2); } var datetext = dates[i].innerHTML; var dateTextArray = datetext.split(' '); dateTextArray[1] = month; dateTextArray[3] = time; dates[i].innerHTML = dateTextArray.join(' '); } } } } convertTitleDates(); new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { console.log(mutation.type); console.log('CHANGE'); convertTitleDates(); }); }).observe( document.querySelector('#mainbar'), { // monitor #mainbar for changes // attributes: true, childList: true, // characterData: true, } ); new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { console.log(mutation.type); console.log('CHANGE'); convertTitleDates(); }); }).observe( document.querySelector('#questions'), { // monitor #questions for changes // attributes: true, childList: true, // characterData: true, } );