今回は JavaScript での日付操作についてです。
とある項目のデフォルト値を、現在の日付から 2か月後の最終日にしたいという要望があり、そのやり方について調査したのでまとめます。
今回参考にさせていただいた記事はこちらから。
JavaScriptで月末日を取得する – Qiita
https://qiita.com/akase244/items/f558b9b3c51804103d16
日付の取得には Date オブジェクト
を使用します。
まず、下記のサンプルコードにあるように、現在の日付を取得します。
const date = new Date();
あとはこの日付を基準に、2か月後の月末日を取得します。
で、この時のポイントが、日の値に 0
を指定することです!
たとえば、今回取得したいのは「2か月後の最終日」なのですが、こちらは「3か月後の0日目」と同じ意味になるとのこと。
なので、下記のサンプルコードにあるように、今月に +3
をして、日を 0
にすれば、2か月後の月末日が取得できます!
const result = new Date(date.getFullYear(), date.getMonth() + 3, 0);
なお、月を指定するときは、指定したい月の値から -1
するのをお忘れなく!
また、date.getMonth()
の値も 1~12
ではなく、0~11
が返ってくるので、ご注意ください。
ちなみに私はここで無事に頭がこんがらがりました。
実際に上記のコードを実行したところ、無事、下記のように 2か月後の最終日を取得することができました!
Mon Nov 30 2020 00:00:00 GMT+0900 (日本標準時)
月初日なら、1 を指定すればいいのですが、月末日をどのように指定していいのか最初はわからず…。
参考サイトのコードを見た時、なるほど!と思いましたね。
今後どこかで使うこともあると思いますので、頭の片隅にでも記憶しておきたいと思います。
以上、JavaScript で指定した月の最終日を取得する方法でした。
ご参考になれば幸いです。