使用星期二和星期二设置datepicker中的默认日期周三只?

时间:2017-06-29 23:02:24

标签: javascript php jquery date datepicker

我有一个日期选择器,其所有过去几天都被禁用,除星期二和星期三之外的所有日子都被禁用。

我希望默认日期是一周中启用的第一天。如果它是星期二,那么它应该显示星期二,如果星期三,然后星期三。任何其他日子它应该在输入字段的下周二显示。

这是我用于datepicker的代码。

<script type="text/javascript">   
    $(document).ready(function(){
        $( ".datepicker" ).datepicker({
            minDate:'0',
            changeMonth:true,
            changeYear:true,
        beforeShowDay:
              function(dt)
              {
                  return [dt.getDay() === 2 || dt.getDay() === 3, ""];
              }});
        });
</script>

我使用选择器的输入:

<form method="POST">
    <div style='margin:0 auto; text-align:center;'>
        <label>Appointment Date: </label>
        <input type="hidden" name="action" value="list_appointments" />
        <input type="text" id="datepicker" name="date" class="datepicker" />
               <!--value=--><?php #echo date_format(new DateTime("now",new DateTimeZone('America/Chicago')),'m/d/Y');?> 
        <input type="submit" value="Refresh List" name="Update" />
        <br />
    </div>
</form>

1 个答案:

答案 0 :(得分:0)

您可以使用momentjs让一周中的第二天变得更容易,然后只需要if-else语句即可获得一周中正确的日期:

 function setDate() {
   var today = moment().isoWeekday(); //or just = new Date().getDay();
   if (today <= 2) {
     return moment().isoWeekday(2);
   } else if (today === 3) {
     return moment().isoWeekday(3);
   } else {
     return moment().add(1, 'weeks').isoWeekday(2);
   }
 }

然后调用setDate()函数并将该返回值设置为datepicker中的日期。

 $('.datepicker').datepicker("setDate", new Date(setDate()));

以下是一个工作示例:https://jsfiddle.net/jutcw0ve/