您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Reformat timestamps
// ==UserScript== // @name fogbugz-timestampformat // @version 1.1 // @namespace ohnopub.net // @description Reformat timestamps // @include http://*.fogbugz.com/* // @include https://*.fogbugz.com/* // @require https://code.jquery.com/jquery-1.10.2.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js // ==/UserScript== (function (jQuery) { jQuery(document).ready(function () { var isUTC = !unsafeWindow.g_ctznOffsetOnServerStandardTime && !unsafeWindow.g_ctznOffsetOnServerDaylightTime; var dstOffset = -unsafeWindow.g_ctznOffsetOnServerDaylightTime / 60; if (dstOffset > -20 && dstOffset < 20) dstOffset = 0; var dstStart = moment(unsafeWindow.g_ctzrgDaylightStart); var stdOffset = -unsafeWindow.g_ctznOffsetOnServerStandardTime / 60; if (stdOffset > -20 && stdOffset < 20) stdOffset = 0; var stdStart = moment(unsafeWindow.g_ctzrgStandardStart); var needDst = !dstStart.isSame(stdStart); var dstFirst = dstStart.isBefore(stdStart); var localeDate = unsafeWindow.GetLocaleDate().toUpperCase(); var localeTime = unsafeWindow.GetLocaleTime().replace('AM', 'A'); var formats = [localeDate + ' ' + localeTime, localeTime + ' ' + localeDate]; jQuery('.date').each(function () { var obj = jQuery(this).find('*').last(); if (!obj.length) obj = jQuery(this); var m; if (isUTC) m = moment.utc(obj.text(), formats); else { m = moment(obj.text(), formats); if (needDst && (dstFirst ? m.isAfter(moment(dstStart).year(m.year())) && m.isBefore(moment(stdStart).year(m.year())) : m.isBefore(moment(stdStart).year(m.year())) || m.isAfter(moment(dstStart).year(m.year())))) /* Do DST offset. */ m.zone(dstOffset); else /* Do STD offset */ m.zone(stdOffset); } if (m.isValid()) obj.text(m.format()); }); }); })(jQuery.noConflict(true));