「日付と時刻を挿入」の版間の差分
ナビゲーションに移動
検索に移動
箇条書きの修正 |
変数の宣言を分割 |
||
| (同じ利用者による、間の9版が非表示) | |||
| 1行目: | 1行目: | ||
== | == n 版 == | ||
メモ帳のF5キーの再現です。いまの時刻をカーソル位置に挿入します。 | メモ帳のF5キーの再現です。いまの時刻をカーソル位置に挿入します。 | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript" copy> | ||
// 日付と時刻を挿入.js | // 日付と時刻を挿入.js | ||
d = new Date | var d = new Date(); | ||
document.selection.Text = d.getHours() + ':' + p(d.getMinutes()) + ' ' + [ | 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 版 == | ||
書式設定(※下表参考)を元に現在日時を出力・挿入します。 | 書式設定(※下表参考)を元に現在日時を出力・挿入します。 | ||
{|class="wikitable" | {|class="wikitable" | ||
| 29行目: | 30行目: | ||
=== 変更履歴 === | === 変更履歴 === | ||
* 2016-02-28 | * 1.0.1 (2016-02-28) | ||
** 書式 d と ddd の内容を交換し、d を 日~土 出力、ddd を Sun~Sat | ** 書式 d と ddd の内容を交換し、d を 日~土 出力、ddd を Sun~Sat 出力にした | ||
*** MMM が Jan~Dec | *** MMM が Jan~Dec 出力なので字数を揃えた | ||
** アポストロフィー <code>'</code> | ** アポストロフィー <code>'</code> によるエスケープを導入 | ||
* 2014-02-12 | * 1.0.0 (2014-02-12) | ||
** | ** 初版公開 | ||
=== ソースコード === | === ソースコード === | ||
<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(); | |||
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, | var result = format.replace(/(')(.*?)\1|([YMDdhms])\3*/g, | ||
function($0, esc, ltr) { | |||
return ltr || esc || symbol[$0] || $0; | |||
} | |||
); | ); | ||
Document.Write(result); | Document.Write(result); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == 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("キャンセル", 0); | menu.Add("キャンセル", 0); | ||
// マウスポインタの位置にポップアップを表示したければTrack(mePosMouse)に | // マウスポインタの位置にポップアップを表示したければTrack(mePosMouse)に | ||
const selected = menu.Track(0); | const selected = menu.Track(0); | ||
let formatKey = "" | let formatKey = ""; | ||
if (selected !== 0 && selected <= formatKeys.length){ | let format = "h:mm YYYY/MM/DD"; | ||
if (selected !== 0 && selected <= formatKeys.length) { | |||
formatKey = formatKeys[selected - 1]; | |||
}else if (selected === 0){ | format = formatDefinition[formatKey]; | ||
} else if (selected === 0) { | |||
}else{ | Quit(); | ||
} else { | |||
Alert("指定が正しくありません。"); | |||
Quit(); | |||
} | } | ||
const symbol = (function(){ | 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, | const result = format.replace(/(')(.*?)\1|ampm|([YMDdHhms])\3*/g, | ||
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 出力なので字数を揃えた
- アポストロフィー
'によるエスケープを導入
- 書式 d と ddd の内容を交換し、d を 日~土 出力、ddd を Sun~Sat 出力にした
- 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以降で動作します(以前の方はconstとletを全て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);
スポンサーリンク