Datepicker如果过了下午3点则禁用接下来的2天,如果周五过去3点则接下来3天,如果当前日期是特定日期则接下来1天

时间:2015-10-29 05:30:00

标签: jquery-ui-datepicker

试图自己找到解决方案,但一直很难。 我有一个交付日期选择的表单字段,有一些条件,如下午3点过后禁用第二天,如果周五过了下午3点则禁用下一天。

在搜索了一些解决方案之后,我写了下面的代码:

<script type="text/javascript">

  jQuery(document).ready(function() {
    jQuery('#date-pick').datepicker({
        dateFormat: 'YYYY MM dd',
        changeMonth: true,
        changeYear: true,
        minDate: +1,
        constrainInput: true
   });            

    var dateTime = new Date();
    var hour = dateTime.getHours();
    var dayOfWeek = dateTime.getDay(); 

    if(dateTime.getHours() >= 15) {
        $('#date-pick').datepicker( "option", "minDate", "+2" )
    }
    else if(dayOfWeek == 5  &&  hour >= 15) {
        $('#date-pick').datepicker( "option", "minDate", "+3" );
    }
    });

</script>

但它不起作用,只是第二天。

我发现这个解决方案可以禁用&#34;如果过了下午3点,我们会在接下来的2天内找到##34;但是,如果不知道如何在下周3点结束后的3天内添加&#34; < /强>&#34;在这种情况下......

<script type="text/javascript">
  jQuery(document).ready(function() {
    jQuery('#date-pick').datepicker({
        changeMonth: true,
        changeYear: true,
        minDate: new Date().getHours() >= 15 ? 2 : 1,
        constrainInput: true
     });            
  });
</script>

请注意,有些人使用beforeShowDay。

找到一个解决方案,可能不是最好的解决方案,但它正在发挥作用。

    jQuery('#date-pick').datepicker({
    dateFormat: "yy-mm-dd",
    minDate: new Date().getHours() >= 15 ? 2 : 1,

    beforeShow : function(){
    var dateTime = new Date();
    var hour = dateTime.getHours();
    var dayOfWeek = dateTime.getDay(); //check the day of the week
        if(dayOfWeek == 5 && hour >= 15) {
            jQuery("#date-pick").datepicker( "option", "minDate", "+4" )
        }
        else if(dayOfWeek == 6) {
            jQuery("#date-pick").datepicker( "option", "minDate", "+3" )
        }
        else if(dayOfWeek == 0) {
            jQuery("#date-pick").datepicker( "option", "minDate", "+2" );
        }
    }

   });

但记得我还有一个条件,那是第四个条件: 如果当天是特定日期,请在第二天停用,例如假期。

任何帮助都将非常感激。

0 个答案:

没有答案