试图自己找到解决方案,但一直很难。 我有一个交付日期选择的表单字段,有一些条件,如下午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" );
}
}
});
但记得我还有一个条件,那是第四个条件: 如果当天是特定日期,请在第二天停用,例如假期。
任何帮助都将非常感激。