根据前一个日期+

时间:2015-08-18 18:13:28

标签: jquery date datepicker

我的应用程序有两个datepicker对象,我想将第二个对象的最小日期设置为为第一个datepicker对象选择的日期之后的5天。以下是我尝试使用的代码片段:

$( "#datePickerObj2" ).datepicker("option", "minDate", function() { var date2 = new Date();  date2 = $('#datePickerObj1').datepicker('getDate');  return date2.getDate()+5;});

我使用this answer作为帮助来编写我的一些代码,但收到错误Uncaught TypeError: date.getTime is not a function。根据一些研究,当日期变量未正确设置为日期对象时会弹出此错误,但我明确地在我的代码中处理了这个错误,并且我没有一个名为“date”的对象。有人能看到我的错误吗?

编辑:此外,如果有人指出我没有使用链接中的正确答案,我也尝试过:

$( "#datePickerObj2" ).datepicker("option", "minDate", function() { var date2 = $('#datePickerObj1').datepicker('getDate');  var nextDayDate = new Date();  nextDayDate.setDate(date2.getDate() + 5); return nextDayDate;});

有同样的问题。

2 个答案:

答案 0 :(得分:1)

datepicker对象中的minDate选项应该是Date对象,而不是函数(就像你发送的那样)。 您可以使用以下代码:

var date2 = $('#datePickerObj1').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 5);
$( "#datePickerObj2" ).datepicker("option", "minDate", nextDayDate);

如果你真的希望这是一个单行,你可以编写你的函数并在同一行中调用它:

$( "#datePickerObj2" ).datepicker("option", "minDate", (function() { var date2 = $('#datePickerObj1').datepicker('getDate');  var nextDayDate = new Date();  nextDayDate.setDate(date2.getDate() + 5); return nextDayDate;})());

我不喜欢这种方法,但你可以使用它:)

答案 1 :(得分:0)

我找到了解决这个问题的方法,将发布我所做的事情,感谢Dekel指导我走这条道路!

var date2 = $('#datePickerObj1').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 5);
$( '#datePickerObj2').datepicker("setDate", nextDayDate);
$( '#datePickerObj2').datepicker("option", "minDate", nextDayDate);

由于某种原因,由于我的第二个datepicker对象尚未被选中,因此在某处传递null值,导致类型错误。所以我先设置第二个datepicker的日期,然后将其设置为该日期的最小日期。