読者です 読者をやめる 読者になる 読者になる

iyuichiの私的開発ログ

渋谷で働くWebエンジニアのログ. Java, Android, iOS, Docker, GCP, AWS, ゲーム開発

Javascriptで月末日を取得するアンチパターン

以下の記事のやり方は正しく動きます。


JavaScriptで月末日を取得する方法 - knt45の日記

 

ダメなパターン

Javascriptで月末日を取得するサンプル

 

errorの方、ぱっと見これでも良さそうなのですが問題があります。

todayに対してYear, Month, Dateを順にセットしていくと途中で思わぬ動作になります。

 

それは、翌月に今日の日付が存在しないケースです。

1月だと、29日(閏年を除く)以降、その他31日で翌月が30日の場合です。

例えばtodayが、2015/01/30 であるとき、setMonthしたときに2015/2/30となってそれは3月だというように処理されてしまいます。

で、setDate(0)をすると2/28が返されることになるのです。

 

ということでコンストラクタでやりましょう。

 

JavaScript 第6版

JavaScript 第6版