Añadir días a la fecha de JavaScript

Cómo añadir días a la Fecha actual usando JavaScript. ¿Tiene JavaScript una función incorporada como la de .Net's Adday?

Puedes crear una con:-

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));

Esto se encarga de incrementar automáticamente el mes si es necesario. Por ejemplo:

8/31 + 1 día se convertirá en 9/1.

El problema de usar setDate directamente es que es un mutador y es mejor evitar ese tipo de cosas. La ECMA consideró oportuno tratar a Date como una clase mutable en lugar de una estructura inmutable.

Comentarios (16)
var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);

Tenga cuidado, porque esto puede ser complicado. Al establecer "mañana", sólo funciona porque su valor actual coincide con el año y el mes de "hoy". Sin embargo, el ajuste a un número de fecha como "32" normalmente seguirá funcionando bien para moverlo al siguiente mes.

Comentarios (7)

Estas respuestas me parecen confusas, prefiero:

var ms = new Date().getTime() + 86400000;
var tomorrow = new Date(ms);

getTime() nos da milisegundos desde 1970, y 86400000 es el número de milisegundos en un día. Por lo tanto, ms contiene milisegundos para la fecha deseada.

Usando el constructor de milisegundos se obtiene el objeto fecha deseado.

Comentarios (4)