在JQuery中,日期选择器需要在一个月内禁用备用周

时间:2017-06-16 13:36:38

标签: javascript jquery jquery-ui

您好我正在使用JQuery Datepicker,我想禁用其他几周。

我在beforeShowDay之前尝试过,但这对他们来说没有多大帮助,

$("#datepicker").datepicker({
    beforeShowDay: function(date) { 
      return date.getDay() == 6
    }
});

任何人都可以帮助我吗

1 个答案:

答案 0 :(得分:1)

我们可以使用this answer中显示的getWeekNumber()函数返回一年中的一周。

有了这个,我们可以weekNumber % 2 == 0将其限制为交替的几周。



Date.prototype.getWeekNumber = function() {
  var d = new Date(+this);
  d.setHours(0, 0, 0, 0);
  d.setDate(d.getDate() + 4 - (d.getDay() || 7));
  return Math.ceil((((d - new Date(d.getFullYear(), 0, 1)) / 8.64e7) + 1) / 7);
};

$("#datepicker").datepicker({
  beforeShowDay: function(date) {
    return [date.getWeekNumber() % 2 == 0, '']
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<input type="text" id="datepicker">
&#13;
&#13;
&#13;

注意,beforeShowDay的预期回报是 array

  

一个以日期作为参数的函数,必须返回一个数组:

     

[0]:true / false表示此日期是否可选

     

[1]:要添加到日期的单元格中的CSS类名称或&#34;&#34;对于默认演示文稿

     

[2]:此日期的可选弹出工具提示