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

时间:2014-07-02 18:33:56

标签: php jquery json jquery-ui-datepicker

我有一些布尔值存储在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'];

如果上述任何一项的值为true,则该用户当天可用。

我希望在datepicker日历上显示可用日期。

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

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"];
        }
    }
});

1 个答案:

答案 0 :(得分:1)

您可以使用日期类的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"
]