おそらくこれが最小
sample.js
new Date().toISOString().split('T')[0].replaceAll('-','')
実行結果
解説
- JSで使える日付フォーマットでちょうど良さそうなのが、ISO 8601形式
- ISO 8601 形式は
YYYY-MM-DDTHH:mm:ss.sssZ- 例)
'2026-01-05T11:16:15.287Z'
- 例)
- Tの左が日付
- Tの右が時刻(ミリ秒込)
- ミリ秒以降を取り除きたかったら、ピリオドの左側だけをとればいい
別解
理屈の上では正しいんだけど、getMonthが0始まりとか、何も考えないと0埋めを忘れたりする人もいたりで、レビューに脳を使うことになる。あと2月2日とか3月3日とかには、月と日が入れ替わっていても分かりづらいのもあって日付を連結させるロジックは原則手作りしたくないしさせたくない。
追記(2026/01/27)
コメントで、UTCだから現地時刻からズレちゃうというご指摘をいただきまいた。ありがとうございます。ミニマムからは遠ざかりますが、真面目にタイムゾーンをずらしたコードはこちら。
const date = new Date();
new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000).toISOString().split('T')[0].replaceAll('-','')
2行になるのが悔しい。2回もDateをnewしてるのが悔しい。getTimeやgetTimezoneOffsetという関数の戻り値の単位がそもそも分かりづらい(読みだけのレビューが厳しい)。などの汚さが残ります。
UTCっす!と言い切るのも楽かも。「今日中の納期ってことは翌朝9時までってことっすよね!」みたいな。

