2009-10-30 39 views
11

Làm thế nào tôi có thể tạo ra một đối tượng ngày đó là ít hơn n số tháng kể từ một đối tượng ngày? Tôi đang tìm một cái gì đó như DateAdd().Nhận một đối tượng ngày (trước sáu tháng) từ một đối tượng ngày

Ví dụ:

var objCurrentDate = new Date(); 

Bây giờ sử dụng objCurrentDate, làm thế nào tôi có thể tạo ra một đối tượng Date có một ngày mà là sáu tháng lớn hơn ngày hôm nay/objCurrentDate?

Trả lời

27

Bạn có thể thực hiện rất dễ dàng một "addMonths" chức năng:

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

Tạo đối tượng ngày và vượt qua giá trị của n, trong đó n là số (thêm/phụ) của tháng.

var dateObj = new Date(); 
    var requiredDate= dateObj.setMonth(dateObj.getMonth() - n); 
Các vấn đề liên quan