到达和离开日期,datepicker 2个月

时间:2015-07-16 14:35:26

标签: jquery jquery-ui date datepicker

我有2个jquery日期选择器,首先是到达日期,其中最小日期是今天,第二个是出发日期,最小日期是到达日期+1天。 Datepickers显示2个月。

问题是,当到达datepicker显示 7月 8月并且我选择 8月25日时,它会设置出发日期选择的最短日期到8月26日,将月份改为 8月 9月。我希望它能够保持 7月 8月,如抵达日期选择器。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

当您使用默认值启动日期选择器时,它仅显示当前月份。在您的情况下,您显示连续2个月,这只是意味着,datepicker将显示当前和下个月,除非您通过setDate干扰其设置。

所以,你必须在某处设置到达日期选择器的日期。如果你不希望第二个日期选择器显示另一个月但是坚持到同一个月,就像离开一个月一样,根本就不要设置它的日期。

Here is a fiddle你可以在那里玩这个主意。为了模仿你的情况,我把两个日期选择器放在一起:出发和到达。当用户从出发处选择日期时,到达日期选择器将对齐。在代码中,您将在我设置到达datePicker的日期的行上方看到一行注释。如果您注释掉该行,您会注意到到达日期不会改变。你的代码必须有类似的东西。

// Comment out following line to stop return datepicker from changing    
$("#arrival").datepicker("setDate","+" + diffDays +"d");

我希望它有所帮助。

<强> __ UPDATE __

其实上面应该有所帮助(sorta!)。这是一个想法(但我真的不认为这是datepicker所需的功能)。现在,返回datepicker至少设置为出发日的第二天。这样,我们保证您的退货日期不能在您出发前设置为任何日期。 (这就是我上面建议找到你设置日期以返回datepicker并将其注释掉的行)。而不是那样,你可以做的是将退货日期拣货机设置为出发前30天。这样,它将保证具有相同的月份(但是用户 CAN 选择出发日期之前的返回日期,您必须在业务逻辑中处理它,我真的认为它是一个馊主意)。

Here is the new fiddle for this

var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)) - 30;

// Comment out following line to stop return datepicker from changing    
$("#arrival").datepicker("setDate","+" + diffDays +"d");