我在尝试仅显示星期一以及在jQuery datepicker的beforeShowDay参数上禁用特定日期时遇到问题...我希望用户只能选择星期一,除了2/20/2012和2/27/2012但我不确定如何实现这个...
<script type="text/javascript">
var unavailableDates = ["20-02-2012", "27-12-2012"];
function unavailable(date) {
dmy = (date.getDay() == 1);
if ($.inArray(dmy, unavailableDates) == -1) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
</script>
<script type="text/javascript">
$(function () {
$("#datepicker").datepicker({
beforeShowDay: unavailable,
minDate: 0
});
});
</script>
答案 0 :(得分:1)
您需要将传入的日期与另一个日期对象进行比较。相反,您将它与字符串数组中的项进行比较。
我会使用valueOf
或getTime
,它会返回自1月1日UTC以来的毫秒数进行比较:
var unavailableDates = [
new Date(2012, 1, 20).valueOf(),
new Date(2012, 1, 27).valueOf()
];
function unavailable(date) {
if (date.getDay() === 1 && $.inArray(date.valueOf(), unavailableDates) < 0) {
return [true, ""];
} else {
return [false, "", "Unavailable"];
}
}
$(document).ready(function() {
$("#date").datepicker({
beforeShowDay: unavailable
});
});