0

如何在 jquery datepicker 中仅显示所有月份和年份的特定日期。我只想为所有月份启用 2 天和 16 天。年月无限制。如果可能的话给我解决方案。 http://jsfiddle.net/yXMKC/4245/

JS:

var available_formatted_days_list = ["07-02-2018", "07-16-2018"];
function check_available_date( date ) {
    var formatted_date = '', ret = [true, "", ""];
    if (date instanceof Date) {
        formatted_date = $.datepicker.formatDate( 'mm-dd-yy', date );
    } else {
        formatted_date = '' + date;
    }
    if ( -1 === available_formatted_days_list.indexOf(formatted_date) ) {
        ret[0] = false;
        ret[1] = "date-disabled"; 
        ret[2] = "Date not available"; // put your custom message here
    }
    return ret;
}

$('#date').datepicker({
    dateFormat: 'dd-mm-yy',
    beforeShowDay: check_available_date
});

HTML:

<input type="text" name="date" id="date" readonly="readonly" size="12" />
4

2 回答 2

1

您需要进行一些更改才能使其正常工作。

  1. 首先让你 available_formatted_days_list 数组的数字列表为

    available_formatted_days_list = [2, 16]

  2. 通过 Date API 获取当前日期

    let currentDay = date.getDate();

  3. 改为检查此值

    if ( -1 === available_formatted_days_list.indexOf(currentDay) )

http://jsfiddle.net/aurc7xwp/

希望这可以帮助!

于 2018-07-13T09:06:51.863 回答
1

这是我的解决方案

$('#date').datepicker({
    dateFormat: 'dd-mm-yy',
    beforeShowDay: function(d) {
    console.log("in"+d.getDate());
       if (d.getDate() == 2 || d.getDate() == 16) {
         return [true, "" ];
       } else {
          return [false, "" ];
       }
    }
});
于 2018-07-13T09:07:33.387 回答