Add days to JavaScript Date

Ashesh picture Ashesh · Feb 19, 2009 · Viewed 1.4M times · Source

How to add days to current Date using JavaScript. Does JavaScript have a built in function like .Net's AddDay?

Answer

AnthonyWJones picture AnthonyWJones · Feb 19, 2009

You can create one with:-

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

var date = new Date();

console.log(date.addDays(5));

This takes care of automatically incrementing the month if necessary. For example:

8/31 + 1 day will become 9/1.

The problem with using setDate directly is that it's a mutator and that sort of thing is best avoided. ECMA saw fit to treat Date as a mutable class rather than an immutable structure.