User:Atmark-chan/custom/changeTimeFormat.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
if (
	// 英語ウィキであり
	mw.config.get('wgContentLanguage') == 'en'
	// js ページでなく
	&& mw.config.get('wgPageName').slice(-3) != '.js'
	// css ページでもない場合
	&& mw.config.get('wgPageName').slice(-4) != '.css'
) {
	// action を取得して
	action = mw.config.get('wgAction');
	// それに応じてコメント部分を取得
	var target = null;
	if (action == 'view') {
		target = $('#mw-content-text');
	} else if (action == 'edit' || action == 'submit') {
		target = $('#wikiPreview');
	}
	
	if (target !== null) {
		// HTMLソースを取得して
		htmlTxt = target.html();
		// 時刻部分の表示を変更して
		htmlTxt = htmlTxt.replace(
			/(\d{2}):(\d{2}), (\d\d?) (January|February|March|April|May|June|July|August|September|October|November|December) (\d{4}) \(UTC\)/g,
				// $1: 時, $2: 分, $3: 日, $4: 月, $5: 年
			formatChanger
		);
		// 反映
		target.html(htmlTxt);
	}
}

// 時刻のフォーマットを変更する関数
function formatChanger(match, p1, p2, p3, p4, p5) {
	// $1: 時, $2: 分, $3: 日, $4: 月, $5: 年
	
	// 月名を定義して
	monthNames = [
		'January',
		'February',
		'March',
		'April',
		'May',
		'June',
		'July',
		'August',
		'September',
		'October',
		'November',
		'December'
	];
	// 反映
	p4 = monthNames.indexOf(p4) + 1;
	
	// 各変数を2桁化
	p1 = to2digits(p1);
	p2 = to2digits(p2);
	p3 = to2digits(p3);
	p4 = to2digits(p4);
	
	// 文字列結合して返す
	return p5 + '/' + p4 + '/' + p3 + ' ' + p1 + ':' + p2 + ' (UTC)';
}

// 数値文字列を2桁化する関数
function to2digits(str) {
	// 暗黙の型変換を行い
	str = str + '';
	// 2桁未満の場合、
	if (str.length < 2) {
		// 0 をつけて
		str = '0' + str;
	}
	// 返す
	return str;
}