JavaScriptで月の最終日を取得する

JavaScriptで月の最終日が何日かを取得するのが組み込みでないかと思って探してみたのだけど、どうもなさそう。ちゃちゃっと書いてはみたけれど、格好悪いなぁ。

function getEndDate(arg) {
var d = new Date(
arg.getYear(),
arg.getMonth(),
arg.getDate()
);
d.setMonth(d.getMonth() + 1);
d.setDate(1);
d.setTime(d.getTime() - 1);
return d.getDate();
}

[追記]
突っ込みの入ったDateオブジェクトの拡張バージョン。

Date.prototype.last_day_of_month = function() {
var d = new Date(
this.getYear(),
this.getMonth(),
this.getDate()
);
d.setMonth(d.getMonth() + 1);
d.setDate(1);
d.setTime(d.getTime() - 1);
return d.getDate();
};

last_day_of_monthって名前良いなぁ。いい加減、get〜とかset〜とかadd〜とか、Javaで覚えた命名も卒業しようかな。

3件のコメント

  1. Dateを拡張しちゃうってのは?

    Date.prototype.last_day_of_month = function() {
    var d = new Date(
    this.getYear(),
    this.getMonth(),
    this.getDate()
    );
    ・・・
    };

  2. Objectのprototypeをいじるのはうざいけど、Dateとかはすっきりするならやってもいいんじゃないかと。

    jsならlast_day_of_month → lastDayOfMonthのがいいかな。

コメントする

メールアドレスが公開されることはありません。