今日の日付をISO形式で取得する

小ネタです。

JavaScriptで、「今日の日付」をISO8601形式(YYYY-MM-DD)で取得する方法はいくつかありますが、toISOString()を使う場合、UTCになる都合上、タイムゾーンによる補正が必要です。

(new Date(Date.now() - (new Date()).getTimezoneOffset()*60000)).toISOString().substring(0,10)
// Dateの数を減らしたい人向け
const n = new Date()
new Date(n - n.getTimezoneOffset()*60000).toISOString().substring(0,10)

わざわざISO8601形式で日付を出すのは、input type="date"の値(valueminmax)として「今日」を使うためです。input要素で使うのだから、JavaScriptでもメソッド一発で出せるといいのですが。