防止选择包含不可用时间跨度的时间跨度

时间:2017-05-12 11:30:50

标签: jquery html daterangepicker bootstrap-daterangepicker

我目前正在为我的一位朋友在度假公寓网站上工作。我遇到了一个问题,不知道如何处理它。我使用的是名为bootstrap-daterangepickerdaterangepicker的插件。问题是:

我想阻止用户选择包含不可用日期的时间跨度,这意味着一个人不应该选择时间跨度" Jan。 4月20日"如果其他人已经预订了,那么,在前面提到的时间范围内(例如" 1月7日 - 11日"),已经预订了。因此,如果用户选择日期,则必须找出下一个禁用日期的安排时间,如阵列提供的那样#34;不可用"并禁用该日期之后所有日期的选择,因此类似于maxDate选项(在我的例子中,从现在开始的一年零月之后的所有日期都不能再选择)。

As you can see the time span "June 10th - 14th 2017" cannot be selected. However one can select dates after that time span.

我使用isInvalidDate选项禁用特定日期的选择:

var unavailable = [
  '10.06.2017',
  '11.06.2017',
  '12.06.2017',
  '13.06.2017',
  '14.06.2017',
]

$('input[name="datefilter"]').daterangepicker({
    maxDate: moment().add({
      years:1,
      months:1
    }),
    locale: {
        format: 'DD.MM.YYYY'
    },
    isInvalidDate: function(date)
    {
      return !!(unavailable.indexOf(date.format('DD.MM.YYYY')) > -1);
    }
});

1 个答案:

答案 0 :(得分:0)

这是我要做的:   - 在每个数据上单击,查看是否填写了开始日期和结束日期   - 如果没有,请不要做任何事情。   - 当开始和结束数据可用时,生成一个包含开始和结束数据之间所有日期的数组(包括两者)。   - 使用数组不可用的array_intersect   - 如果您最终得到一个空数组,则可以预订日期。否则就无法进行预订。

相关问题