🗓
【JavaScript】月末の日付を取得する方法
はじめに
Dateオブジェクトのメソッドを使って、月末の日付を取得する方法をまとめました!
たとえば、1日〜31日or30日まで処理を繰り返したいときなどに使えます。
今回の記事はちょっと短め!
Dateオブジェクトのメソッドについてまとめた記事はコチラ👇
今月の月末を取得する
JavaScriptのDateオブジェクトでは、範囲外の値を指定したとき自動的に調整してくれます!
今回はその機能を使って、月末の日付を取得したいと思います。
※なお、記事執筆時の日付は2023年5月3日です!
手順
- 今日の日付オブジェクトを作成する
- getMonth()で月を取得し、さらに1を足して翌月にする
- 日付に0をセットする
let date = new Date();
date.setMonth(date.getMonth()+1, 0); // 手順2と3を同時におこなっています
// date.setMonth(5, 0); と同じ
結果
console.log(date); // Wed May 31 2023 12:09:59 GMT+0900 (日本標準時)
console.log(date.getDate()); // 31
無事、今月の月末を取得できました!✨
月が0から始まるせいで少しややこしいですね…😭
参考
Discussion
はじめまして。突然のコメント失礼します!
どうやらgetMonth()は「指定された日付の「月」を表す 0 を基点とした値(すなわち 0 が年の最初の月を示す)を返します。」らしいです!↓
そのため、ご共有いただいている本記事のコードそのものに間違いは無いと思いますが、「getMonth()で月を取得し、さらに1を足して翌月にする」の部分のご認識に誤りがあるかもしれません、、!
「1を足して翌月にしている」わけではなく「getMonth()が1月の場合0を、2月の場合1を返すため、1を足して今月の月数を出している」が正しい気がします!
すみません自分も実は初心者で認識が違う可能性もあります。。もしかしたらと思って連絡させていただきました、、!
コメントありがとうございます!!
確認して再度返信させていただきます💦
もうしばらくお待ちください🙇
返信遅くなりすみません!確認しました!
書いた日が2023年5月3日なので、getMonth()をすると4が返ってきます。
date.setMonth(5, 0);
の形にしたいので、「1を足して翌月(5)にしている」という意味で翌月と書いたと思います…!分かりにくいので、修正しますね🙇コメントありがとうございました😊
なんと、、!意図を組めておらずすみませんでした、、、!
お忙しいところご確認いただき本当にありがとうございます!