<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-CommentsinLocalTime.js</id>
	<title>MediaWiki:Gadget-CommentsinLocalTime.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-CommentsinLocalTime.js"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-CommentsinLocalTime.js&amp;action=history"/>
	<updated>2026-07-17T09:30:17Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-CommentsinLocalTime.js&amp;diff=820424&amp;oldid=prev</id>
		<title>imported&gt;Wcam：​根据编辑请求修改</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=MediaWiki:Gadget-CommentsinLocalTime.js&amp;diff=820424&amp;oldid=prev"/>
		<updated>2025-09-03T13:14:39Z</updated>

		<summary type="html">&lt;p&gt;根据编辑请求修改&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//Gary King, &amp;quot;User:Gary King/comments in local time.js,&amp;quot; Wikipedia, The Free Encyclopedia, http://en.wikipedia.org/w/index.php?title=User:Gary_King/comments_in_local_time.js&amp;amp;oldid=281324481 (accessed May 28, 2009).&lt;br /&gt;
(function($, mw) {&lt;br /&gt;
	if ( typeof require === &amp;#039;undefined&amp;#039; ) {&lt;br /&gt;
		console.warn(&amp;#039;Please do not load via importScriptUri - enable gadget instead.&amp;#039;)&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	const langConv = require(&amp;#039;ext.gadget.HanAssist&amp;#039;).conv;&lt;br /&gt;
	var CommentsInLocalTime = function() {&lt;br /&gt;
		// mw.config.get(&amp;#039;wgCanonicalNamespace&amp;#039;) = unsafeWindow.mw.config.get(&amp;#039;wgCanonicalNamespace&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
		/*&lt;br /&gt;
		Settings&lt;br /&gt;
		 */&lt;br /&gt;
		var LocalComments = window.LocalComments || {};&lt;br /&gt;
&lt;br /&gt;
		if (typeof(LocalComments.dateFormat) === &amp;#039;undefined&amp;#039;) {&lt;br /&gt;
			// Deprecated: LocalizeConfig&lt;br /&gt;
			if (typeof(window.LocalizeConfig) !== &amp;#039;undefined&amp;#039; &amp;amp;&amp;amp; typeof(window.LocalizeConfig.dateFormat) !== &amp;#039;undefined&amp;#039; &amp;amp;&amp;amp; window.LocalizeConfig.dateFormat !== &amp;#039;&amp;#039;) {&lt;br /&gt;
				LocalComments.dateFormat = LocalizeConfig.dateFormat;&lt;br /&gt;
			} else {&lt;br /&gt;
				LocalComments.dateFormat = &amp;#039;ymd&amp;#039;;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if (typeof(LocalComments.timeFirst) === &amp;#039;undefined&amp;#039;) LocalComments.timeFirst = false;&lt;br /&gt;
		if (typeof(LocalComments.dateDifference) === &amp;#039;undefined&amp;#039;) LocalComments.dateDifference = true;&lt;br /&gt;
		if (typeof(LocalComments.twentyFourHours) === &amp;#039;undefined&amp;#039;) LocalComments.twentyFourHours = false;&lt;br /&gt;
		if (typeof(LocalComments.dayOfWeek) === &amp;#039;undefined&amp;#039;) LocalComments.dayOfWeek = true;&lt;br /&gt;
		if (typeof(LocalComments.utcOffset) !== &amp;#039;number&amp;#039;) LocalComments.utcOffset = -1 * new Date().getTimezoneOffset() / 60;&lt;br /&gt;
		if (typeof(LocalComments.disablePages) !== &amp;#039;function&amp;#039;) {&lt;br /&gt;
			LocalComments.disablePages = function() {&lt;br /&gt;
				return false;&lt;br /&gt;
			};&lt;br /&gt;
		}&lt;br /&gt;
		/*&lt;br /&gt;
		End Settings&lt;br /&gt;
		 */&lt;br /&gt;
&lt;br /&gt;
		if (mw.config.get(&amp;#039;wgCanonicalNamespace&amp;#039;) === &amp;#039;&amp;#039; || mw.config.get(&amp;#039;wgCanonicalNamespace&amp;#039;) === &amp;#039;MediaWiki&amp;#039; || mw.config.get(&amp;#039;wgCanonicalNamespace&amp;#039;) === &amp;#039;Special&amp;#039; || LocalComments.disablePages()) return;&lt;br /&gt;
&lt;br /&gt;
		var disabled_urls = new Array(&amp;#039;action=history&amp;#039;),&lt;br /&gt;
			unique_url = false,&lt;br /&gt;
			wikiPreview = new Array(&amp;#039;action=edit&amp;#039;, &amp;#039;action=submit&amp;#039;);&lt;br /&gt;
		for (var i = 0; i &amp;lt; disabled_urls.length; i++) {&lt;br /&gt;
			if (document.location.href.indexOf(disabled_urls[i]) !== -1) return;&lt;br /&gt;
		}&lt;br /&gt;
		for (var i = 0; i &amp;lt; wikiPreview.length; i++) {&lt;br /&gt;
			if (document.location.href.indexOf(wikiPreview[i]) != -1) unique_url = &amp;#039;wikiPreview&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var element_class = unique_url ? unique_url : &amp;#039;.mw-body-content .mw-parser-output[dir]&amp;#039;;&lt;br /&gt;
		replace_text(document.querySelector(element_class), /(\d{4})年(\d{1,2})月(\d{1,2})日 \([一二三四五六日]\) (\d\d):(\d\d) \(UTC\)/g, adjust_time);&lt;br /&gt;
&lt;br /&gt;
		function add_leading_zero(number) {&lt;br /&gt;
			if (number &amp;lt; 10) number = &amp;#039;0&amp;#039; + number;&lt;br /&gt;
			return number;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function adjust_time(original_timestamp, old_year, old_month, old_day, old_hour, old_minute, offset) {&lt;br /&gt;
			var today = new Date(),&lt;br /&gt;
				yesterday = new Date(),&lt;br /&gt;
				tomorrow = new Date();&lt;br /&gt;
			yesterday.setDate(yesterday.getDate() - 1);&lt;br /&gt;
			tomorrow.setDate(tomorrow.getDate() + 1);&lt;br /&gt;
&lt;br /&gt;
			// set the date entered&lt;br /&gt;
			var time = new Date();&lt;br /&gt;
			time.setFullYear(old_year, old_month - 1, old_day);&lt;br /&gt;
			time.setHours(old_hour);&lt;br /&gt;
			time.setMinutes(old_minute);&lt;br /&gt;
&lt;br /&gt;
			// determine the time offset&lt;br /&gt;
			var utc_offset = LocalComments.utcOffset;&lt;br /&gt;
			if (utc_offset &amp;gt;= 0) {&lt;br /&gt;
				utc_offset = &amp;#039;+&amp;#039; + utc_offset;&lt;br /&gt;
			} else {&lt;br /&gt;
				utc_offset = &amp;#039;−&amp;#039; + Math.abs(utc_offset);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			time = new Date( +time + LocalComments.utcOffset * 36e5 );&lt;br /&gt;
&lt;br /&gt;
			// set the date bits to output&lt;br /&gt;
			var year = time.getFullYear(),&lt;br /&gt;
				month = add_leading_zero(time.getMonth() + 1);&lt;br /&gt;
			var day = time.getDate();&lt;br /&gt;
			var hour = parseInt(time.getHours()),&lt;br /&gt;
				minute = add_leading_zero(time.getMinutes());&lt;br /&gt;
&lt;br /&gt;
			// output am or pm depending on the date and user config settings&lt;br /&gt;
			ampm = &amp;#039;&amp;#039;;&lt;br /&gt;
			if (!LocalComments.twentyFourHours) {&lt;br /&gt;
				ampm = hour &amp;lt;= 11 ? &amp;#039; am&amp;#039; : &amp;#039; pm&amp;#039;;&lt;br /&gt;
				if (hour &amp;gt; 12) {&lt;br /&gt;
					hour -= 12;&lt;br /&gt;
				} else if (hour === 0) {&lt;br /&gt;
					hour = 12;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// return &amp;#039;today&amp;#039; or &amp;#039;yesterday&amp;#039; if that is the case&lt;br /&gt;
			if (year == today.getFullYear() &amp;amp;&amp;amp; month == add_leading_zero(today.getMonth() + 1) &amp;amp;&amp;amp; day == today.getDate()) {&lt;br /&gt;
				var date = &amp;#039;今天&amp;#039;;&lt;br /&gt;
			} else if (year == yesterday.getFullYear() &amp;amp;&amp;amp; month == add_leading_zero(yesterday.getMonth() + 1) &amp;amp;&amp;amp; day == yesterday.getDate()) {&lt;br /&gt;
				var date = &amp;#039;昨天&amp;#039;;&lt;br /&gt;
			} else if (year == tomorrow.getFullYear() &amp;amp;&amp;amp; month == add_leading_zero(tomorrow.getMonth() + 1) &amp;amp;&amp;amp; day == tomorrow.getDate()) {&lt;br /&gt;
				var date = &amp;#039;明天&amp;#039;;&lt;br /&gt;
			} else {&lt;br /&gt;
				// calculate day of week&lt;br /&gt;
				day_names = new Array(&amp;#039;星期日&amp;#039;, &amp;#039;星期一&amp;#039;, &amp;#039;星期二&amp;#039;, &amp;#039;星期三&amp;#039;, &amp;#039;星期四&amp;#039;, &amp;#039;星期五&amp;#039;, &amp;#039;星期六&amp;#039;);&lt;br /&gt;
				day_of_the_week = day_names[time.getDay()];&lt;br /&gt;
&lt;br /&gt;
				if (LocalComments.dateDifference) {&lt;br /&gt;
					// calculate time difference from today and the timestamp&lt;br /&gt;
					today = new Date(today.getYear(), today.getMonth(), today.getDate());&lt;br /&gt;
					time = new Date(time.getYear(), time.getMonth(), time.getDate());&lt;br /&gt;
&lt;br /&gt;
					milliseconds_ago = today.getTime() - time.getTime();&lt;br /&gt;
					days_ago = Math.round(milliseconds_ago / 1000 / 60 / 60 / 24);&lt;br /&gt;
&lt;br /&gt;
					var difference,&lt;br /&gt;
						difference_word = &amp;#039;&amp;#039;,&lt;br /&gt;
						last = &amp;#039;&amp;#039;;&lt;br /&gt;
					if (today.valueOf() &amp;gt;= time.valueOf()) {&lt;br /&gt;
						difference = new Date(today.valueOf() - time.valueOf());&lt;br /&gt;
						difference_word = &amp;#039;前&amp;#039;;&lt;br /&gt;
						if (days_ago &amp;lt;= 7) last = &amp;#039;&amp;#039;;&lt;br /&gt;
					} else {&lt;br /&gt;
						difference = new Date(time.valueOf() - today.valueOf());&lt;br /&gt;
						difference_word = langConv({&lt;br /&gt;
							hans: &amp;#039;后&amp;#039;,&lt;br /&gt;
							hant: &amp;#039;後&amp;#039;&lt;br /&gt;
						});&lt;br /&gt;
						if (days_ago &amp;gt;= -7) last = &amp;#039;&amp;#039;;&lt;br /&gt;
					}&lt;br /&gt;
					var descriptive_difference = [];&lt;br /&gt;
&lt;br /&gt;
					if (difference.getYear() - 70 &amp;gt; 0) {&lt;br /&gt;
						var years_ago = (difference.getYear() - 70) + &amp;#039;年&amp;#039;;&lt;br /&gt;
						descriptive_difference.push(years_ago);&lt;br /&gt;
					}&lt;br /&gt;
					if (difference.getMonth() &amp;gt; 0) {&lt;br /&gt;
						var months_ago = difference.getMonth() + langConv({&lt;br /&gt;
							hans: &amp;#039;个月&amp;#039;,&lt;br /&gt;
							hant: &amp;#039;個月&amp;#039;&lt;br /&gt;
						});&lt;br /&gt;
						descriptive_difference.push(months_ago);&lt;br /&gt;
					}&lt;br /&gt;
					if (difference.getDate() &amp;gt; 0) {&lt;br /&gt;
						var new_days_ago = difference.getDate() - 1 + &amp;#039;日&amp;#039;;&lt;br /&gt;
						descriptive_difference.push(new_days_ago);&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					descriptive_difference = &amp;#039; (&amp;#039; + descriptive_difference.join(&amp;#039;&amp;#039;) + difference_word + &amp;#039;)&amp;#039;;&lt;br /&gt;
				} else {&lt;br /&gt;
					descriptive_difference = &amp;#039;&amp;#039;;&lt;br /&gt;
					last = &amp;#039;&amp;#039;;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				// format the date according to user preferences&lt;br /&gt;
				var formatted_date = &amp;#039;&amp;#039;,&lt;br /&gt;
					month_name = convert_number_to_month(time.getMonth()),&lt;br /&gt;
					month = time.getMonth() + 1;&lt;br /&gt;
&lt;br /&gt;
				switch (LocalComments.dateFormat.toLowerCase()) {&lt;br /&gt;
				case &amp;#039;ymd&amp;#039;:&lt;br /&gt;
					formatted_date = year + &amp;#039;年&amp;#039; + month + &amp;#039;月&amp;#039; + day + &amp;#039;日&amp;#039;;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;ymd0&amp;#039;:&lt;br /&gt;
					formatted_date = year + &amp;#039;年&amp;#039; + add_leading_zero(month) + &amp;#039;月&amp;#039; + add_leading_zero(day) + &amp;#039;日&amp;#039;;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;dmy&amp;#039;:&lt;br /&gt;
					formatted_date = day + &amp;#039; &amp;#039; + month_name + &amp;#039; &amp;#039; + year;&lt;br /&gt;
					break;&lt;br /&gt;
				case &amp;#039;mdy&amp;#039;:&lt;br /&gt;
					formatted_date = month_name + &amp;#039; &amp;#039; + day + &amp;#039;, &amp;#039; + year;&lt;br /&gt;
					break;&lt;br /&gt;
				default:&lt;br /&gt;
					formatted_date = year + &amp;#039;-&amp;#039; + add_leading_zero(month) + &amp;#039;-&amp;#039; + add_leading_zero(day);&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				var date = &amp;#039;&amp;#039;;&lt;br /&gt;
				if (LocalComments.dayOfWeek) {&lt;br /&gt;
					date = formatted_date + &amp;#039;, &amp;#039; + last + day_of_the_week + descriptive_difference;&lt;br /&gt;
				} else {&lt;br /&gt;
					date = formatted_date + &amp;#039;, &amp;#039; + descriptive_difference;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var time = add_leading_zero(hour) + &amp;#039;:&amp;#039; + minute + &amp;#039; &amp;#039; + ampm;&lt;br /&gt;
&lt;br /&gt;
			if (LocalComments.timeFirst) {&lt;br /&gt;
				var return_date = time + &amp;#039;, &amp;#039; + date + &amp;#039; (UTC&amp;#039; + utc_offset + &amp;#039;)&amp;#039;;&lt;br /&gt;
			} else {&lt;br /&gt;
				var return_date = date + &amp;#039;, &amp;#039; + time + &amp;#039; (UTC&amp;#039; + utc_offset + &amp;#039;)&amp;#039;;&lt;br /&gt;
			}&lt;br /&gt;
			return return_date;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function convert_month_to_number(month) {&lt;br /&gt;
			var output = new Date(month + &amp;#039; 1, 2001&amp;#039;);&lt;br /&gt;
			return output.getMonth();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function convert_number_to_month(number) {&lt;br /&gt;
			var month = new Array(&amp;#039;一月&amp;#039;, &amp;#039;二月&amp;#039;, &amp;#039;三月&amp;#039;, &amp;#039;四月&amp;#039;, &amp;#039;五月&amp;#039;, &amp;#039;六月&amp;#039;, &amp;#039;七月&amp;#039;, &amp;#039;八月&amp;#039;, &amp;#039;九月&amp;#039;, &amp;#039;十月&amp;#039;, &amp;#039;十一月&amp;#039;, &amp;#039;十二月&amp;#039;);&lt;br /&gt;
			return month[number];&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function replace_text(node, search, replace) {&lt;br /&gt;
			if (!node) {&lt;br /&gt;
				return;&lt;br /&gt;
			} else if (node.nodeType == 3) {&lt;br /&gt;
				value = node.nodeValue;&lt;br /&gt;
				matches = value.match(search);&lt;br /&gt;
&lt;br /&gt;
				if (matches != null) {&lt;br /&gt;
					node_parent_node = node.parentNode;&lt;br /&gt;
					old_node = node;&lt;br /&gt;
					// old_node_list = node.parentNode.childNodes;&lt;br /&gt;
&lt;br /&gt;
					new_node = document.createDocumentFragment();&lt;br /&gt;
&lt;br /&gt;
					var after_match = value;&lt;br /&gt;
&lt;br /&gt;
					for (match = 0; match &amp;lt; matches.length; match++) {&lt;br /&gt;
						var position = after_match.search(search);&lt;br /&gt;
						var length = matches[match].toString().length;&lt;br /&gt;
						var before_match = after_match.substring(0, position);&lt;br /&gt;
						after_match = after_match.substring(position + length);&lt;br /&gt;
&lt;br /&gt;
						first_span = document.createElement(&amp;#039;span&amp;#039;);&lt;br /&gt;
						first_span.setAttribute(&amp;#039;style&amp;#039;, &amp;#039;font-size: 85%;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
						second_span = document.createElement(&amp;#039;span&amp;#039;);&lt;br /&gt;
						second_span.setAttribute(&amp;#039;class&amp;#039;, &amp;#039;localcomments&amp;#039;);&lt;br /&gt;
						second_span.setAttribute(&amp;#039;title&amp;#039;, matches[match]);&lt;br /&gt;
						second_span.appendChild(document.createTextNode(matches[match].toString().replace(search, replace)));&lt;br /&gt;
&lt;br /&gt;
						first_span.appendChild(second_span);&lt;br /&gt;
&lt;br /&gt;
						new_node.appendChild(document.createTextNode(before_match));&lt;br /&gt;
						new_node.appendChild(first_span);&lt;br /&gt;
&lt;br /&gt;
						// new_node_list = new_node.childNodes;&lt;br /&gt;
						// old_node_list = new_node_list;&lt;br /&gt;
					}&lt;br /&gt;
&lt;br /&gt;
					new_node.appendChild(document.createTextNode(after_match));&lt;br /&gt;
					node_parent_node.replaceChild(new_node, old_node);&lt;br /&gt;
				}&lt;br /&gt;
			} else {&lt;br /&gt;
				var children = [],&lt;br /&gt;
				child = node.firstChild;&lt;br /&gt;
				while (child) {&lt;br /&gt;
					children[children.length] = child;&lt;br /&gt;
					child = child.nextSibling;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				for (var child = 0; child &amp;lt; children.length; child++)&lt;br /&gt;
					replace_text(children[child], search, replace);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	window.CommentsinLocalTime = CommentsInLocalTime;&lt;br /&gt;
	$(function() {&lt;br /&gt;
		if ($(&amp;#039;.mw-graph&amp;#039;).length === 0) {&lt;br /&gt;
			mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function($item) {&lt;br /&gt;
				if ($item.attr(&amp;#039;id&amp;#039;) === &amp;#039;mw-content-text&amp;#039; &amp;amp;&amp;amp; window.location.href.indexOf(&amp;#039;&amp;amp;disable=loco&amp;#039;) === -1) CommentsInLocalTime();&lt;br /&gt;
			});&lt;br /&gt;
		} else {&lt;br /&gt;
			$(window).ready(function() {&lt;br /&gt;
				window.setTimeout(function() {&lt;br /&gt;
					mw.hook(&amp;#039;wikipage.content&amp;#039;).add(function($item) {&lt;br /&gt;
						if ($item.attr(&amp;#039;id&amp;#039;) === &amp;#039;mw-content-text&amp;#039; &amp;amp;&amp;amp; window.location.href.indexOf(&amp;#039;&amp;amp;disable=loco&amp;#039;) === -1) CommentsInLocalTime();&lt;br /&gt;
					});&lt;br /&gt;
				}, 2000);&lt;br /&gt;
			});&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
})(jQuery, mw);&lt;/div&gt;</summary>
		<author><name>imported&gt;Wcam</name></author>
	</entry>
</feed>