「日付と時刻を挿入」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
MSY-07 (トーク | 投稿記録)
変更履歴: バージョン表記の追加
MSY-07 (トーク | 投稿記録)
変数の宣言を分割
 
(同じ利用者による、間の7版が非表示)
1行目: 1行目:
== N 版 ==
== n 版 ==
メモ帳のF5キーの再現です。いまの時刻をカーソル位置に挿入します。
メモ帳のF5キーの再現です。いまの時刻をカーソル位置に挿入します。


<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
#language = "JScript"
// 日付と時刻を挿入.js
// 日付と時刻を挿入.js
d = new Date
var d = new Date();


document.selection.Text = d.getHours() + ':' + p(d.getMinutes()) + ' ' + [p(d.getYear()), p(d.getMonth() + 1), p(d.getDate())].join('/')
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 }
function p(x) {
return x < 10 ? '0' + x : x;
}
</syntaxhighlight>
</syntaxhighlight>


== Masme 版 ==
== masme 版 ==
書式設定(※下表参考)を元に現在日時を出力・挿入します。
書式設定(※下表参考)を元に現在日時を出力・挿入します。
{|class="wikitable"
{|class="wikitable"
37行目: 38行目:


=== ソースコード ===
=== ソースコード ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
//■日付と時刻
//■日付と時刻
// 2014-02-12 - 2016-02-28
// 2014-02-12 - 2016-02-28
44行目: 45行目:
var format = "h:mm YYYY/MM/DD";
var format = "h:mm YYYY/MM/DD";


var symbol = (function(){
var symbol = (function() {
  var t = new Date(), pad = function(n){return n<10? "0"+n : n};
var t = new Date();
  return {
var pad = function(n) {
  "YYYY": (t.getFullYear()),
return n < 10 ? "0" + n : n;
  "YY": pad(t.getFullYear()%100),
};
  "MMM": ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()],
return {
  "MM": pad(t.getMonth()+1),
"YYYY": (t.getFullYear()),
  "M":     (t.getMonth()+1),
"YY": pad(t.getFullYear() % 100),
  "DD": pad(t.getDate()),
"MMM": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
  "D":     (t.getDate()),
"Oct", "Nov", "Dec"
  "ddd": ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][t.getDay()],
][t.getMonth()],
  "d":   ["日","月","火","水","木","金","土"][t.getDay()],
"MM": pad(t.getMonth() + 1),
  "hh": pad(t.getHours()),
"M": (t.getMonth() + 1),
  "h":     (t.getHours()),
"DD": pad(t.getDate()),
  "mm": pad(t.getMinutes()),
"D": (t.getDate()),
  "m":     (t.getMinutes()),
"ddd": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][t.getDay()],
  "ss": pad(t.getSeconds()),
"d": ["日", "月", "火", "水", "木", "金", "土"][t.getDay()],
  "s":     (t.getSeconds())
"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,
var result = format.replace(/(')(.*?)\1|([YMDdhms])\3*/g,
  function($0,esc,ltr){return ltr || esc || symbol[$0] || $0;}
function($0, esc, ltr) {
return ltr || esc || symbol[$0] || $0;
}
);
);
Document.Write(result);
Document.Write(result);
</syntaxhighlight>
</syntaxhighlight>


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


82行目: 90行目:
|}
|}


<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
#title = "選択式日付と時刻"
#title = "選択式日付と時刻"


89行目: 97行目:


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


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


const symbol = (function(){
const symbol = (function() {
  const t = new Date(), pad = function(n){return n<10? "0"+n : n};
const t = new Date();
  return {
const pad = function(n) {
  "YYYY": (t.getFullYear()),
return n < 10 ? "0" + n : n;
  "YY": pad(t.getFullYear()%100),
};
  "MMM": ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][t.getMonth()],
return {
  "MM": pad(t.getMonth()+1),
"YYYY": (t.getFullYear()),
  "M":     (t.getMonth()+1),
"YY": pad(t.getFullYear() % 100),
  "DD": pad(t.getDate()),
"MMM": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
  "D":     (t.getDate()),
"Oct", "Nov", "Dec"
  "ddd": ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][t.getDay()],
][t.getMonth()],
  "d":   ["日","月","火","水","木","金","土"][t.getDay()],
"MM": pad(t.getMonth() + 1),
  "hh": pad(t.getHours()),
"M": (t.getMonth() + 1),
  "h":     (t.getHours()),
"DD": pad(t.getDate()),
  "HH": pad(t.getHours()%12),
"D": (t.getDate()),
  "H":     (t.getHours()%12),
"ddd": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][t.getDay()],
  "mm": pad(t.getMinutes()),
"d": ["日", "月", "火", "水", "木", "金", "土"][t.getDay()],
  "m":     (t.getMinutes()),
"hh": pad(t.getHours()),
  "ss": pad(t.getSeconds()),
"h": (t.getHours()),
  "s":     (t.getSeconds()),
"HH": pad(t.getHours() % 12),
  "ampm": (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,
const result = format.replace(/(')(.*?)\1|ampm|([YMDdHhms])\3*/g,
  function($0,esc,ltr){return ltr || esc || symbol[$0] || $0;}
function($0, esc, ltr) {
return ltr || esc || symbol[$0] || $0;
}
);
);
Document.Write(result);
Document.Write(result);
</syntaxhighlight>
</syntaxhighlight>

2025年11月24日 (月) 18:41時点における最新版

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);
スポンサーリンク