我使用以下代码将今天的日期增加了6个月。
var d = new Date();
var curr_date = d.getDate();
var curr_month = d.getMonth() + 7; //Months are zero based
if(curr_month<10){
curr_month = "0"+curr_month;
}
if(curr_date<10){
curr_date = '0'+curr_date;
}
var curr_year = d.getFullYear();
$scope.vmEndDate = curr_year + "/" + curr_month + "/" + curr_date;
当我打印$ scope.vmEndDate值时,Iam得到2015/09/31,但是在9月31日那天不存在。如何获得正确的价值。
答案 0 :(得分:2)
您可以直接处理数月的日期:
var today = new Date(2015,03,31)
today.setMonth(today.getMonth()+6)
console.log(today.toLocaleDateString())
如果您希望在9月份获得有效日期,https://stackoverflow.com/a/11469976/4682796
答案 1 :(得分:0)
在javascript世界中,零开始!对我来说有点奇怪。无论如何,添加7到日期不是9月,而是7是10月。
这意味着你的代码是正确的
只需更改
var curr_month = d.getMonth() + 7; //Months are zero based
到
var curr_month = d.getMonth() + 6; //Months are zero based
答案 2 :(得分:0)
以下代码段可能会有所帮助。
var d = new Date();
var curr_date = new Date(d.getFullYear(), d.getMonth() + 6, d.getDate());
console.log(curr_date.getFullYear() + "/" +
((curr_date.getMonth() + 1).toString().length == 1 ? '0' +
(curr_date.getMonth() + 1) : (curr_date.getMonth() + 1)) + "/" +
(curr_date.getDate().toString().length == 1 ? '0' +
(curr_date.getDate()) : (curr_date.getDate())));
}
答案 3 :(得分:0)
使用this question中的代码可以解决如下问题。 您首先获取今天的日期,将其日期更改为第一天(或任何对所有月份有效的数字,例如1到28 ),然后提前六个月,然后将日期设置为最后一天这个月。
function daysInMonth(month, year)
{
return 32 - new Date(year, month, 32).getDate();
}
var today = new Date()
today.setDate(1)
today.setMonth(today.getMonth()+6)
today.setDate(daysInMonth(today.getMonth(), today.getDate()))