日期选择器从PHP变量中排除日期


Date Picker exclude days from PHP Variables

我有一些布尔值存储在MySQL数据库中用于用户的可用性:

$available_monday = $settings['available_monday'];
$available_tuesday = $settings['available_tuesday'];
$available_wednesday = $settings['available_wednesday'];
$available_thursday = $settings['available_thursday'];
$available_friday = $settings['available_friday'];
$available_saturday = $settings['available_saturday'];
$available_sunday = $settings['available_sunday'];

如果以上任何一个值为真,则该用户当天可用。

我希望可用的天数显示在日期选择日历上。

我知道我首先需要将可用的日期添加到数组中。

var daysAvailable = $.parseJSON('<?php echo json_encode($availableDates); ?>');

这就是我困惑的地方。下面的代码适用于特定的yy-mm-date,但我想要按星期(星期一、星期二等)去做。

我如何修改它以根据用户的可用性屏蔽日期?

$('#date').datepicker({
    beforeShowDay: function(date) {
        if($.inArray($.datepicker.formatDate('yy-mm-dd', date ), daysAvailable) > -1) {
            return [false, "highlighted", "Booked out"];
        } else {
            return [true, "", "available"];
        }
    }
});

您可以像这样使用日期类的getDay()方法:

var days = [
   "Sunday",
   "Monday",
   "Tuesday",
   "Wednesday",
   "Thursday",
   "Friday",
   "Saturday"
];
$('#date').datepicker({
    beforeShowDay: function(date) {
        if($.inArray(days[date.getDay()], daysAvailable) > -1) {
            return [true, "", "available"];
        } else {
            return [false, "highlighted", "Booked out"];
        }
    }
});

假设daysAvailable的格式如下:

var daysAvailable = [
    "Monday",
    "Wednesday",
    "Friday"
]