JavaScript:將指定日期加上 X 天

撰寫一個addDays method,可將指定日期加上 X 天,得到一個延後的日期。

方法 1

Date.prototype.addDays = function(days) {
  var dat = new Date(this.valueOf()); // (1)
  dat.setDate(dat.getDate() + days);  // (2)
  return dat
}

這個方法似乎有些囉嗦,畢竟一開始取得的 this 就是時間物件,不需要將時間還原成 ms 後再轉回時間物件,然後再做後面取日期、加天數的處理。

方法 2

改進方法 1,由於「this」即是指定的時間物件(如下 Demo 範例是 today),因此就使用 this 取得「日」再加 7 天,最後將這個更新後的日期設定給這個時間物件即可。

Date.prototype.addDays = function(days) {
  this.setDate(this.getDate() + days);
  return this;
}

Demo

取得今天後 7 日的時間。

var today = new Date();

today // Wed May 17 2017 12:16:50 GMT+0800 (台北標準時間)
today.addDays(7) // Wed May 24 2017 12:16:50 GMT+0800 (台北標準時間)

Date


javascript date Date object is mutable javascript