jQuery 日期选择器 - 排除特定日期,但允许特定日期

jQuery Datepicker - Exclude certain days, but allow specific dates

我需要从全年的日期选择器中排除星期一和星期二,但需要在 2020-12-21 和 2020-12-22 的假期期间允许这样做。

如果不是上述日期之一,我如何应对 day != 1 && day != 2 并仅使用它?

var excludeDates = ["2020-12-24","2020-12-25","2020-12-26","2020-12-27","2020-12-28","2020-12-29","2020-12-30","2020-12-31","2021-01-01","2021-01-02","2021-01-03",,"2021-01-04","2021-01-05","2021-01-06"];

$( function() {
  $( "#roves_collection_date" ).datepicker({
    minDate : advanceCollection,
    dateFormat: 'dd/mm/yy',
    altFormat: 'yy-mm-dd',
    beforeShowDay: function(date) {
      var day = date.getDay();
      var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
      return [(day != 1 && day != 2 && excludeDates.indexOf(string) == -1];
    }
  });
});

如果您将另一个日期数组添加到 include(覆盖任何排除项),那么您可以使用:

return [((day != 1 && day != 2 && excludeDates.indexOf(string) == -1) 
        || includeDates.indexOf(string) >= 0)];

var excludeDates = ["2020-12-24", "2020-12-25", "2020-12-26", "2020-12-27", "2020-12-28", "2020-12-29", "2020-12-30", "2020-12-31", "2021-01-01", "2021-01-02", "2021-01-03", , "2021-01-04", "2021-01-05", "2021-01-06"];
var includeDates = ["2020-12-21", "2020-12-22"];

$(function() {
  $("#dte").datepicker({
    //minDate: advanceCollection,
    dateFormat: 'dd/mm/yy',
    altFormat: 'yy-mm-dd',
    beforeShowDay: function(date) {
      var day = date.getDay();
      var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
      console.log(day, string, includeDates.indexOf(string));
      return [((day != 1 && day != 2 && excludeDates.indexOf(string) == -1) 
              || includeDates.indexOf(string) >= 0)];
    }
  });
});
<link href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet" />

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script>

<input type='text' id='dte' />