jqueryui datepicker时间和日期约束

时间:2014-01-07 15:18:29

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

我有一个要求,我需要显示本月的所有星期五,但有一些规则:

  1. 显示即将到来的而不是前一个星期五。
  2. 周一至周三上午10点,本周五显示本周
  3. 周三上午10:01至周日,下周五周五
  4. 到目前为止我所做的事情完全涵盖了第一点,但我真的很无知如何继续其他两点。

    这是我做的:

           var minimumDate = dateParser(MyProfile.nextDistDate);
           var parsedMinimumDate = new Date();
           console.log(" parsedMinimumDate : "+parsedMinimumDate);
            $("#delivery_from_date").datepicker({
              defaultDate : "+1w",
              dateFormat: "dd/mm/yy",
              regional: 'en',
              changeMonth: true,
              minDate: minimumDate,
              firstDay: 1,
              beforeShowDay: function(date) {
                return [date.getDay() == 5];
              }
            });
    

    minimumDate是一个由日期组成的变量,默认情况下是即将到来的星期五。

    有什么建议吗?

2 个答案:

答案 0 :(得分:2)

检查星期几,如果是周三检查是否超过上午10点,并将最短日期设置为今天或提前一周,具体取决于它的日期:

var date = new Date();
var day  = date.getDay();
var min  = 0;

if (day >= 3) { // wednesday -> saturday 23:59
    if (day == 3) { // it's a wednesday
        if (date.getHours() > 10) { // it's over 10 am
            min = '+1w';
        }
    }else{ // it's thursday -> sunday
        min = '+1w';
    }
}

$("#delivery_from_date").datepicker({
    defaultDate   : "+1w",
    dateFormat    : "dd/mm/yy",
    regional      : 'en',
    changeMonth   : true,
    minDate       : min,
    firstDay      : 1,
    beforeShowDay : function (date) {
        return [date.getDay() == 5];
    }
});

FIDDLE

答案 1 :(得分:1)

你可以试试这个:

var minimumDate = dateParser(MyProfile.nextDistDate);
var today= new Date();

if(today.getDay() >= 3 && today.getHours() >= 10){
    minimumDate.setDate(minimumDate.getDate()+7);
}

代码检查今天是否>星期三& > 10小时......如果是,则比最少日期增加7天=>下周