🗓

【JavaScript】月末の日付を取得する方法

2023/05/03に公開4

はじめに

Dateオブジェクトのメソッドを使って、月末の日付を取得する方法をまとめました!
たとえば、1日〜31日or30日まで処理を繰り返したいときなどに使えます。
今回の記事はちょっと短め!

Dateオブジェクトのメソッドについてまとめた記事はコチラ👇
https://zenn.dev/miya_akari/articles/0843b859421315

今月の月末を取得する

JavaScriptのDateオブジェクトでは、範囲外の値を指定したとき自動的に調整してくれます!
今回はその機能を使って、月末の日付を取得したいと思います。
※なお、記事執筆時の日付は2023年5月3日です!

手順

  1. 今日の日付オブジェクトを作成する
  2. getMonth()で月を取得し、さらに1を足して翌月にする
  3. 日付に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から始まるせいで少しややこしいですね…😭

参考

https://ja.javascript.info/date#ref-65
https://fkgtinfo.com/2020/12/13/javascript_getsumatsu/
https://www.yoheim.net/blog.php?q=20190701#:~:text=取得できます。-,月末を取得する,-当月の月末

Discussion

miriwo_pmiriwo_p

はじめまして。突然のコメント失礼します!

どうやらgetMonth()は「指定された日付の「月」を表す 0 を基点とした値(すなわち 0 が年の最初の月を示す)を返します。」らしいです!↓
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth

そのため、ご共有いただいている本記事のコードそのものに間違いは無いと思いますが、「getMonth()で月を取得し、さらに1を足して翌月にする」の部分のご認識に誤りがあるかもしれません、、!

「1を足して翌月にしている」わけではなく「getMonth()が1月の場合0を、2月の場合1を返すため、1を足して今月の月数を出している」が正しい気がします!

すみません自分も実は初心者で認識が違う可能性もあります。。もしかしたらと思って連絡させていただきました、、!

akariakari

コメントありがとうございます!!
確認して再度返信させていただきます💦
もうしばらくお待ちください🙇

akariakari

返信遅くなりすみません!確認しました!

書いた日が2023年5月3日なので、getMonth()をすると4が返ってきます。
date.setMonth(5, 0);の形にしたいので、「1を足して翌月(5)にしている」という意味で翌月と書いたと思います…!

分かりにくいので、修正しますね🙇コメントありがとうございました😊

miriwo_pmiriwo_p

なんと、、!意図を組めておらずすみませんでした、、、!
お忙しいところご確認いただき本当にありがとうございます!