【问题标题】:jquery datepicker multiple min max datesjquery datepicker 多个最小最大日期
【发布时间】:2015-08-29 17:31:21
【问题描述】:

我在使用 jQuery 日期选择器时遇到了一些问题。我需要多个范围来选择日期。例如,用户应该能够在 (d-m-y) 2015 年 1 月 8 日和 2015 年 5 月 8 日之间选择一个范围。但也介于:16/8/2015 到 20/8/2015(在同一日历中)之间。与这些范围不匹配的日期应该是非活动的。我最终尝试了以下代码但没有成功:

    $(function() {    
    var ds = array('1-8-2015', '16-8-2015'),
        de = array('5-8-2015', '20-8-2015');

    $('#datepicker').datepicker({
        beforeShow: function() {
            return {
                dateFormat: 'd-m-yy',
                minDate: ds,                
                maxDate: de,

            }
        }
    });
});

JSFiddle 示例: JSfiddle

有什么想法吗? 问候,西蒙

【问题讨论】:

标签: jquery datepicker range


【解决方案1】:

好吧..你可以做到..你可以使用datepickerbeforeShowDay选项,如下所示:

var d1s = new Date(2010, 8, 1),
    d1e = new Date(2010, 8, 5),
    d2s = new Date(2010, 8, 16),
    d2e = new Date(2010, 8, 20);
$(function() {
  $("#datepicker").datepicker({
    numberOfMonths: 1,
    beforeShowDay: function(date) {
      return [(date >= d1s && date <= d1e || date >= d2s && date <= d2e), ''];
    },
    minDate: d1s,
    maxDate: d2e
  });
});​

Source

【讨论】:

  • 不定义变量号不是可以吗?我忘了提到的是日期是通过 PHP 动态生成的,所以我不知道有多少个日期。这就是为什么如果可能的话最好使用数组的原因:)
  • 让我尽力满足您的要求.. :)
  • 示例:daystart: ['1-8-2015', '15-8-2015'], dayend ['5-8-2015', '20-8-2015'] :)
  • 对不起,伙计。但是在 jquery datepicker 中没有任何这样的选项来循环 beforeShowDay 中的数组,它本身会形成一个循环。谷歌中可能有一些插件可用于这个特殊要求,我尽我所能以所有可能的方式实现,但没有找到任何方法来增量传递数组..
  • 那么有没有办法设置多个范围呢?听起来很奇怪:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多