我一直在修补日期对象。
我想在一天中添加动态天数,然后将结果日期作为变量并将其发布到表单。
var startDate = $('#StartDate').datepicker("getDate");
var change = $('#numnights').val();
alert(change);
var endDate = new Date(startDate.getFullYear(), startDate.getMonth(),startDate.getDate() + change);
除最后一部分外,一切正常。它并没有把日子添加到当天
take this scenario:
startdate = 2011-03-01
change = 1
alert change = 1
endDate = 2011-03-11 *it should be 2011-03-02*
感谢所有快速回复。
将变量变量转换为整数就可以了。谢谢。
parseInt(change)
只是为了扩展这个:有没有办法为变量分配一个类型,比如var charge(int)?
答案 0 :(得分:2)
你可能已成为字符串连接的牺牲品。
尝试将Date构造函数中的最后一个参数更改为:startDate.getDate() + parseInt(change)
请参阅this example以供将来参考。
答案 1 :(得分:1)
在添加之前将change
转换为数字。看起来你正在获得一个字符串连接操作,而不是你期望在你的代码中添加。
答案 2 :(得分:1)
我相信你是连接而不是使用数学运算符。试试这个,
var endDate = new Date(startDate.getFullYear(), startDate.getMonth(),startDate.getDate() + (+change));
答案 3 :(得分:1)
看起来你没有添加结束日,你正在整理它'1' + '1' = '11'
使用parseInt()
确保您使用的是整数
例如
var change = parseInt($('selector').val());
此外,使用此解决方案,如果您在本月29日的开始日期说并获得5