views:

421

answers:

3

In JavaScript, how can I create a dateobject which is less than n number of months from another date object. I am looking for something like DateAdd()

 Ex : var objCurrentDate = new Date();

Now using objCurrentDate, how can I create a date object which is having a date which is six month older that todays date/objCurrentDate?

A: 

A good one

Date.add(), Date.subtract(), & Date.truncate()

rahul
+1  A: 
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);
Amarghosh
+3  A: 

You can implement very easily an "addMonths" function:

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
CMS