JQuery datepicker范围和开始日期

时间:2014-09-30 17:27:50

标签: jquery jquery-ui jquery-ui-datepicker

我有一个id为myDate的输入框,我希望用户输入日期不是2014年1月1日之前而不是12/30/2014之后的日期。我还想从当前日期提前2周通知。

  • 如果用户在10/28注册时可选择11 / 12-12 / 30
  • 如果用户在10/30注册时可选择11 / 14-12 / 30
  • 如果用户今天注册,则selectable应为11 / 01-12 / 30
  • 如果用户在11/16注册时可选择11 / 30-12 / 30
$("#myDate").datepicker({
    setDate: '11/01/2014',
    minDate: 14,
    maxDate: '12/30/2014',
    beforeShowDay: $.datepicker.noWeekends
});

但是你可以看到它不起作用。设定日期不起作用,只需从当前日期开始,并提前14天申请。

2 个答案:

答案 0 :(得分:1)

好之后没有让任何人回答这个问题。我想出了自己的。

希望这有助于像我这样的人...

$(function () {
    var now = new Date();
    if (now >= Date.parse('11/01/2014')) {
        $('#dateFrom').datepicker({
            minDate: 14,
            maxDate: '12/30/2014',
            beforeShowDay: $.datepicker.noWeekends
        });
    } else {

        var dtDate1 = '11/01/2014'
        var dtDate2 = dtDate1.replace(/-/g, '/')
        var nDifference = Math.abs(new Date() - new Date(dtDate2));
        var one_day = 1000 * 60 * 60 * 24;
        var days = Math.round(nDifference / one_day);

        if (Math.round(nDifference / one_day >= 14)) {
            $('#dateFrom').datepicker({
                minDate: '11/01/2014',
                maxDate: '12/30/2014',
                beforeShowDay: $.datepicker.noWeekends
            });
        }
        else
            if (Math.round(nDifference / one_day < 14)) {
            $('#dateFrom').datepicker({
                minDate: days,
                maxDate: '12/30/2014',
                beforeShowDay: $.datepicker.noWeekends
            });
        }
    }
})

答案 1 :(得分:0)

不幸的是,我认为您必须编写自己的自定义功能来考虑高级通知单。我认为这超出了jQuery Datepicker功能。此外,如果您希望您的用户在11-1之前不选择日期,为什么不将11-1作为您的minDate?