JavaScriptを使って、現在のDate
に日数を追加する方法。JavaScriptには、.Net'のAddDay
のような組み込み関数はありますか?
で作成することができます。
Date.prototype.addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}
var date = new Date();
alert(date.addDays(5));
これは、必要に応じて月を自動的にインクリメントする処理を行います。例えば、以下のようになります。
8/31+1日で9/1__となります。
setDateを直接使用する際の問題点は、
setDateがミューテーターであり、そのようなことは避けるべきであるということです。ECMAは
Date`を不変の構造体ではなく、可変型のクラスとして扱うことにしました。
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);
これは厄介なので注意が必要です。 明日を設定する場合、現在の値と今日の年と月が一致しているからこそ動作するのです。 しかし、通常の"32"のような日付の数字に設定しても、次の月に移動させることは問題なくできます。