2

我有一个日历,我想设置几天禁用。这个事情谁有经验?在 github 上它说:

disableDayFn: callback function that gets passed a Date object for each day in view. Should return true to disable selection of that day.

但是我该如何使用它呢?

var bookingPicker = new Pikaday(
            {
                field: $(self.options.calendarInput, container)[0],
                container: $(self.options.calendarContainer, container)[0],
                minDate: new Date(),
                bound: false,
                firstDay: 1,
            onOpen: function () {
                this.disableDayFn(23); //<--- ???
            },
            onSelect: function (date) {

            },
            onDraw: function (date) {
                console.log("NEW MONTH")
            }
        }
    );
4

2 回答 2

1
var bookingPicker = new Pikaday(
        {
            field: $(self.options.calendarInput, container)[0],
            container: $(self.options.calendarContainer, container)[0],
            minDate: new Date(),
            bound: false,
            firstDay: 1,
        onOpen: function () {
            this.disableDayFn(23); //<--- ???
        },
        onSelect: function (date) {

        },
        onDraw: function (date) {
            console.log("NEW MONTH")
        },
        disableDayFn: function(dateTime){
          /* here you can access each day shown and disable those in your range. To disable just return true*/
       } 
    }
);
于 2015-09-02T20:18:29.523 回答
0

因此,您可以在选择器上看到的每个日期都已通过,只需在函数中针对该日期执行您想要的任何检查。这是一个使用日期字符串数组的示例,该数组使用 moment.js 来限定相等性。

var validDateArray = ["2017-JAN-01", "2017-JAN-02", "2017-JAN-03"]

在选择器中:

disableDayFn: (dateToCheck: Date) => {

  if (validDateArray == undefined) {
    console.log("...validDateArray == undefined");
    return true;
  }

  let d1 = Moment(dateToCheck).format("YYYY-MMM-DD");

  for (let d2 of validDateArray) {
    if (d1 == d2) {
      console.log("...date is valid");
      return false; 
    }
  }

  console.log("...date is not valid");
  return true;
}
于 2017-07-04T09:18:10.093 回答