所以,我有这段代码:
$('#end_date').click(function()
{
var start_date = new Date($('#start_date').val());
var duration = parseInt($('#duration').val());
var end_date = new Date();
end_date.setDate(start_date + duration);
$('#end_date').val($.datepicker.formatDate('yy-mm-dd', end_date));
});
我认为,应该从表单中获取开始日期,并在其中添加一些天数(持续时间),然后在另一个文本字段中显示输出。但是,我得到的结果总是 NaN-NaN-NaN,或者如果我删除格式,则只是 Invalid Date。
但是:
$('#end_date').val($.datepicker.formatDate('yy-mm-dd', start_date));
工作正常。所以我不认为问题出在第三行。现在我很困惑。有解决这个问题的建议吗?
最佳答案
setDate
只是设置月份中的第几天,您可以使用 setFullYear
和 setMonth
或者您可以这样做。
$('#end_date').click(function()
{
var start_date = new Date($('#start_date').val());
var duration = parseInt($('#duration').val());
var end_date = new Date();
end_date.setDate(start_date.getMilliseconds() + duration.getMilliseconds());
$('#end_date').val($.datepicker.formatDate('yy-mm-dd', end_date));
});
希望 start_Date 和 duration 返回毫秒数。
关于JavaScript setDate() 返回无效日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13140823/