[英]Javascript add days to a existing calendar object off by one month
我正在尝试从Calendar对象读取日期,并为其添加特定的天数(即7)
这是我的代码:
var daysFromBeginDate = parseInt($("#policyDuration").val()) * 7
alert(daysFromBeginDate)
var beginDate = new Date("2015-04-24");
alert(beginDate)
var endDate = new Date("2015-05-08");
alert(beginDate.getDate() + daysFromBeginDate)
endDate.setDate(new Date(beginDate.getDate() + daysFromBeginDate));
alert(endDate.toString())
我得到的Sun May 31 2015 17:00:000 GMT
是Sun May 31 2015 17:00:000 GMT
。 应该是少了一个月,多余的月份又在哪里增加呢?
使用以下调用的JavaScript,我发现month参数从零开始计数。
new Date(2015, 3, 1); // that's the 1st April 2015!
导致此问题的是您的代码中的以下代码片段:-
endDate.getMonth() + 1
那可能是您问题的原因。
编辑:如果下面的代码
var endDate = new Date("2015-05-08");
更改为
var endDate = new Date();
您将获得正确的输出。
这是因为setDate设置一个月中的某一天,而April仅有30天,因此将其展期,您将其设置为May,因为24 + 7为31,所以您获得31。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.