jQuery Datepicker仅显示星期一并禁用某些星期一

时间:2012-02-13 21:08:03

标签: javascript jquery date user-interface datepicker

我在尝试仅显示星期一以及在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>

1 个答案:

答案 0 :(得分:1)

您需要将传入的日期与另一个日期对象进行比较。相反,您将它与字符串数组中的项进行比较。

我会使用valueOfgetTime,它会返回自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
    });
});​

示例: http://jsfiddle.net/aThZG/