2009-10-30 21 views
11

¿Cómo puedo crear un objeto fecha que es menor que n número de meses desde otro objeto fecha? Estoy buscando algo como DateAdd().Obtener un objeto de fecha (seis meses antes) de otro objeto de fecha

Ejemplo:

var objCurrentDate = new Date(); 

Ahora, utilizando objCurrentDate, ¿cómo puedo crear un objeto Date tener una fecha que es seis meses mayor que la fecha de hoy/objCurrentDate?

Respuesta

27

Se puede implementar fácilmente un "AddMonths" de función:

function addMonths(date, months) { 
    date.setMonth(date.getMonth() + months); 
    return date; 
} 


addMonths(new Date(), -6); // six months before now 
// Thu Apr 30 2009 01:22:46 GMT-0600 

addMonths(new Date(), -12); // a year before now 
// Thu Oct 30 2008 01:20:22 GMT-0600 
1
var oldDate:Date = new Date(); 
/* 
Check and adjust the date - 
At the least, make sure that the getDate() returns a 
valid date for the calculated month and year. 
If it's not valid, change the date as per your needs. 
You might want to reset it to 1st day of the month/last day of the month 
or change the month and set it to 1st day of next month or whatever. 
*/ 
if(oldDate.getMonth() < n) 
    oldDate.setFullYear(oldDate.getFullYear() - 1); 
oldDate.setMonth((oldDate.getMonth() + n) % 12); 
0

Crear objeto de fecha y pasar el valor de n, donde n es el número (añadir/sub) del mes.

var dateObj = new Date(); 
    var requiredDate= dateObj.setMonth(dateObj.getMonth() - n); 
Cuestiones relacionadas