Phương pháp chuẩn
Dùng setMonth() kết hợp getMonth(). setMonth() tự xử lý tràn tháng/năm.
Ví dụ
<!DOCTYPE html>
<html>
<body>
<script>
var d = new Date();
document.write("Ngày gốc: " + d + "<br>");
// Cộng 3 tháng
d.setMonth(d.getMonth() + 3);
document.write("Sau khi +3 tháng: " + d);
</script>
</body>
</html>
Giải thích
getMonth()trả về 0-11 (Tháng 1 = 0).setMonth(13)tự động thành tháng 2 năm sau.- Ngày trong tháng được điều chỉnh: 31/1 + 1 tháng → 28/2 (hoặc 29 năm nhuận).
Hàm tiện ích tái sử dụng
function addMonths(date, months) {
var d = new Date(date); // clone
d.setMonth(d.getMonth() + months);
return d;
}
// Dùng
var future = addMonths(new Date(), 6); // 6 tháng tới