用javascript操纵日期对象

时间:2011-01-25 03:35:04

标签: javascript date

我一直在修补日期对象。

我想在一天中添加动态天数,然后将结果日期作为变量并将其发布到表单。

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)?

4 个答案:

答案 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

的更改,则您可以轻松地结束一天的超出范围