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で覚えた命名も卒業しようかな。
Dateを拡張しちゃうってのは?
Date.prototype.last_day_of_month = function() {
var d = new Date(
this.getYear(),
this.getMonth(),
this.getDate()
);
・・・
};
こんにちは。
先にprototypeバージョンを書いてたんですが、
http://d.hatena.ne.jp/nazoking/20050425/1114374966
とかが頭によぎって結局関数化に。
でもなんか悔しいので、prototypeバージョンも追記します。
Objectのprototypeをいじるのはうざいけど、Dateとかはすっきりするならやってもいいんじゃないかと。
jsならlast_day_of_month → lastDayOfMonthのがいいかな。