JavaScriptで日付を「YYYY-MM-DD」形式にする方法
JavaScriptの標準Dateには整形機能が少ないので、自分で組み立てるのが確実です。
padStartで0埋めする方法
const d = new Date();
const y = d.getFullYear();
const m = String(d.getMonth() + 1).padStart(2, "0");
const day = String(d.getDate()).padStart(2, "0");
const result = `${y}-${m}-${day}`; // 例: 2026-06-16
ロケールを使う方法
const result = new Date().toLocaleDateString("sv-SE");
// "2026-06-16" (sv-SE はISO風の区切り)
注意
getMonth()は0始まりなので+1が必要。- 複雑な書式や時差を扱うなら、
Intl.DateTimeFormatやライブラリの利用も検討。
よくある質問
なぜ月に +1 するの?
getMonth() は0(1月)〜11(12月)を返す仕様だからです。表示用には +1 して1〜12にそろえます。
ライブラリは必要ですか?
簡単な整形なら標準機能で十分です。タイムゾーンや多言語の複雑な書式が必要なときはライブラリが便利です。