技術ブログ

プログラミング、IT関連の記事中心

JavaScriptのDateオブジェクトにおける月の変更方法と注意点

目次

setMonthを行なっても月が変更されない問題

次のように、dateの日付を書き換えたのですが、「2023年7月」と変更されない現象が起きました。

let date = new Date();
date.setFullYear(2023);
date.setMonth(6);
console.log(date);

原因は、実行した日付の制約にあります。
もし、YYYY年MM月31日に実行した場合、上記のコードでは「2023年6月31日」となりますが、6月31日は存在しないため、自動的に7月1日に繰り越されます。

対処法1

次のように、Dateオブジェクトの日付を設定することで月の設定を正常に行うことができます。

let date = new Date();
date.setDate(1);
date.setMonth(6);
date.setFullYear(2023);
console.log(date);

対処法2

以下のように、日付をインスタンス化する際に年と月を指定することで、月の設定を正常に行うことができます。

let date = new Date(2023, 6);
console.log(date);