日付と時刻を挿入

2025年11月24日 (月) 18:41時点におけるMSY-07 (トーク | 投稿記録)による版 (変数の宣言を分割)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

n 版 編集

メモ帳のF5キーの再現です。いまの時刻をカーソル位置に挿入します。

// 日付と時刻を挿入.js
var d = new Date();

document.selection.Text = d.getHours() + ':' + p(d.getMinutes()) + ' ' + [d.getFullYear(), p(d.getMonth() + 1), p(d.getDate())].join('/');

function p(x) {
	return x < 10 ? '0' + x : x;
}

masme 版 編集

書式設定(※下表参考)を元に現在日時を出力・挿入します。

書式設定の例 出力結果の例
h:mm YYYY/MM/DD 4:05 2001/02/03
YYYY-MM-DD hh:mm:ss 2001-02-03 04:05:06
ddd, MMM D, YYYY Sat, Feb 3, 2001
YY年M月D日(d) h時m分s秒 01年2月3日(土) 4時5分6秒
hhmm 'hhmm' h'hm'm '' 0405 hhmm 4hm5 '

変更履歴 編集

  • 1.0.1 (2016-02-28)
    • 書式 d と ddd の内容を交換し、d を 日~土 出力、ddd を Sun~Sat 出力にした
      • MMM が Jan~Dec 出力なので字数を揃えた
    • アポストロフィー ' によるエスケープを導入
  • 1.0.0 (2014-02-12)
    • 初版公開

ソースコード 編集

//■日付と時刻
// 2014-02-12 - 2016-02-28

//■書式設定 ●初期値="h:mm YYYY/MM/DD"
var format = "h:mm YYYY/MM/DD";

var symbol = (function() {
	var t = new Date();
	var pad = function(n) {
		return n < 10 ? "0" + n : n;
	};
	return {
		"YYYY": (t.getFullYear()),
		"YY": pad(t.getFullYear() % 100),
		"MMM": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
			"Oct", "Nov", "Dec"
		][t.getMonth()],
		"MM": pad(t.getMonth() + 1),
		"M": (t.getMonth() + 1),
		"DD": pad(t.getDate()),
		"D": (t.getDate()),
		"ddd": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][t.getDay()],
		"d": ["日", "月", "火", "水", "木", "金", "土"][t.getDay()],
		"hh": pad(t.getHours()),
		"h": (t.getHours()),
		"mm": pad(t.getMinutes()),
		"m": (t.getMinutes()),
		"ss": pad(t.getSeconds()),
		"s": (t.getSeconds())
	};
})();

var result = format.replace(/(')(.*?)\1|([YMDdhms])\3*/g,
	function($0, esc, ltr) {
		return ltr || esc || symbol[$0] || $0;
	}
);
Document.Write(result);

isari 版 編集

masmeさん版を、12時間表記に対応させポップアップメニューからフォーマットを選べるようにしたものです。複数の様式を使い分ける必要がある時にご利用ください。Mery2.6.6以降で動作します(以前の方はconstletを全てvarに置き換えてください)。

書式はmasmeさんの表に加え以下のように12時間を表す大文字の H/HH 、「午前/午後」どちらかに置き換えられる ampm が拡張されています。

書式設定の例 出力結果の例
ampmH時m分、'ampm'に行った。 午後3時7分、ampmに行った。
#title = "選択式日付と時刻"

// 2023-07-16
// 原版: masme 2014-02-12 - 2016-02-28

// 書式リスト。お好きな文字列に書き換え・追加してください。キーがポップアップメニューに表示されるラベル、値が書式のフォーマットです。
const formatDefinition = {
	"ISO 8601": "YYYY-MM-DDThh:mm:ss+09:00",
	"23年7月7日(金)午後3時7分": "YY年M月D日(d)ampmH時m分"
};

// 書式選択
const menu = CreatePopupMenu();
const formatKeys = Object.keys(formatDefinition);
formatKeys.forEach(function(key, index) {
	menu.Add(key, index + 1);
});
menu.Add("キャンセル", 0);
// マウスポインタの位置にポップアップを表示したければTrack(mePosMouse)に
const selected = menu.Track(0);
let formatKey = "";
let format = "h:mm YYYY/MM/DD";
if (selected !== 0 && selected <= formatKeys.length) {
	formatKey = formatKeys[selected - 1];
	format = formatDefinition[formatKey];
} else if (selected === 0) {
	Quit();
} else {
	Alert("指定が正しくありません。");
	Quit();
}

const symbol = (function() {
	const t = new Date();
	const pad = function(n) {
		return n < 10 ? "0" + n : n;
	};
	return {
		"YYYY": (t.getFullYear()),
		"YY": pad(t.getFullYear() % 100),
		"MMM": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
			"Oct", "Nov", "Dec"
		][t.getMonth()],
		"MM": pad(t.getMonth() + 1),
		"M": (t.getMonth() + 1),
		"DD": pad(t.getDate()),
		"D": (t.getDate()),
		"ddd": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][t.getDay()],
		"d": ["日", "月", "火", "水", "木", "金", "土"][t.getDay()],
		"hh": pad(t.getHours()),
		"h": (t.getHours()),
		"HH": pad(t.getHours() % 12),
		"H": (t.getHours() % 12),
		"mm": pad(t.getMinutes()),
		"m": (t.getMinutes()),
		"ss": pad(t.getSeconds()),
		"s": (t.getSeconds()),
		"ampm": (t.getHours() < 12 ? "午前" : "午後")
	};
})();

const result = format.replace(/(')(.*?)\1|ampm|([YMDdHhms])\3*/g,
	function($0, esc, ltr) {
		return ltr || esc || symbol[$0] || $0;
	}
);
Document.Write(result);
スポンサーリンク