Para añadir días, meses o años a una fecha dada, suelo hacerlo de esta forma: Convierto la fecha actual y la cantidad de tiempo a añadir en segundos, los sumo y obtengo la nueva fecha, por ejemplo:
Código Javascript
:
Ver original(function(){
var fecha = new Date(),
dia = fecha.getDate(),
mes = fecha.getMonth() + 1,
anio = fecha.getFullYear(),
tiempo = prompt("Ingrese la cantidad de días a añadir"),
addTime = tiempo * 86400; //Tiempo en segundos
fecha.setSeconds(addTime); //Añado el tiempo
document.body.innerHTML = "Fecha actual: " + dia + "/" + mes + "/" + anio + "<br />";
document.body.innerHTML += "Tiempo añadido: " + tiempo + " días<br />";
document.body.innerHTML += "Fecha final: " + fecha.getDate() + "/" + (fecha.getMonth() + 1) + "/" + fecha.getFullYear();
})();
Creo un objeto
Date y de él, tomo la fecha, mes y año, que será la fecha actual ya que no le he dado parámetros al objeto. Luego, le pido al usuario que ingrese la cantidad de días a añadir a la fecha actual, transformo dicha cantidad a segundos, multiplicándola por la cantidad de segundos que hay en un día, con el método
setSeconds, adiciono los segundos de los días que quiero añadir a la fecha actual. Finalmente, imprimo los datos. Podrás notar que a los meses les sumo 1, esto es porque el objeto los toma desde 0 hasta 11, como en los arrays.
El resultado se ve así, ingresando 8 días:
Código HTML:
Ver originalFecha actual: 27/1/2014
Tiempo añadido: 8 días
Fecha final: 4/2/2014
Esto te puede dar una idea de cómo puedes elaborar lo que quieres, ya que la clave está en sumar el tiempo en segundos a la fecha, saludos.