Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在jquery日历中禁用今天和#x27;s日期和设置日期以及周末(如果有)_Php_Jquery_Calendar - Fatal编程技术网

Php 在jquery日历中禁用今天和#x27;s日期和设置日期以及周末(如果有)

Php 在jquery日历中禁用今天和#x27;s日期和设置日期以及周末(如果有),php,jquery,calendar,Php,Jquery,Calendar,假设今天的日期是2013年11月6日 $("#departure").datepicker({ dateFormat: "dd/mm/yy", changeMonth: true, changeYear: true, maxDate: "+1y", minDate: +4, }); $("#departure").datepicker("setDate", "

假设今天的日期是2013年11月6日

$("#departure").datepicker({
            dateFormat: "dd/mm/yy",
            changeMonth: true,
            changeYear: true,
            maxDate: "+1y",
             minDate: +4,
        });
$("#departure").datepicker("setDate", "5");
<input id="departure" />
$(“#出发”).datepicker({
日期格式:“日/月/年”,
变化月:对,
变化年:是的,
最大日期:“+1y”,
minDate:+4,
});
$(“#出发”)。日期选择器(“设置日期”,“5”);
这里15和16是周末,所以不应该来,应该是skip,2013年3月18日来。 请帮帮我。 请看这里:- 在这里,这是一个完美的工作:-


但在屏幕截图中,15和16属于sat和sun,所以应该是skip,17和18应该是skip。

如果您想禁用周末,jquery ui有一个内置的功能。在datepicker init上添加
beforeShowDay:$.datepicker.noWeekends
。参考:api.jqueryui.com/datepicker/

$("#departure").datepicker({
    beforeShowDay: $.datepicker.noWeekends,
    dateFormat: "dd/mm/yy",
    changeMonth: true,
    changeYear: true,
    maxDate: "+1y",
    minDate: +4
});

要禁用特定日期,可以使用
beforeShowDay
和自定义功能处理

var unavailableDates = ["9-5-2011","14-5-2011","15-5-2011"];

function unavailable(date) {
  dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
  if ($.inArray(dmy, unavailableDates) < 0) {
    return [true,"","Custom message here"];
  } else {
    return [false,"","Custom message here"];
  }
}

$('#departure').datepicker({ beforeShowDay: unavailable });
var不可用日期=[“9-5-2011”、“14-5-2011”、“15-5-2011”];
功能不可用(日期){
dmy=date.getDate()+“-”+(date.getMonth()+1)+“-”+date.getFullYear();
如果($.inArray(dmy,不可用日期)<0){
返回[true,”,“此处自定义消息”];
}否则{
返回[false,”,“此处自定义消息”];
}
}
$(“#出发”).datepicker({beforeShowDay:unavailable});
要禁用周末,您可以在ShowDay之前使用
:$.datepicker.noWeekends
作为 @索德斯莱特没有回答

现场演示

我得到了答案

<html>
    <head>
        <title>Collection Date</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js"></script> 
        <link type="text/css" rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css" /> 

    </head>
<body>
<form name="Form1" method="post" action="TestDatePicker.asp" id="Form1">

<h2>Collection Form</h2>

<fieldset>
    <legend>Choose the collection date</legend>

    <div id="datepicker"></div>
    <input type="text" id="txtCollectionDate" name="txtCollectionDate" class="requiredField" style="display: none;" />

</fieldset>

<input type="submit" name="submit" value="Submit" />

</form>
<script type="text/javascript">
    $(document).ready(function() {

        var dateMin = new Date();
        //alert(dateMin);
        var weekDays = AddWeekDays(5);
        alert(weekDays);
        alert(weekDays);

        dateMin.setDate(dateMin.getDate() + weekDays);

        var natDays = [
          [1, 1, 'uk'],
          [12, 25, 'uk'],
          [12, 26, 'uk']
        ];

        function noWeekendsOrHolidays(date) {
            var noWeekend = $.datepicker.noWeekends(date);
            if (noWeekend[0]) {
                return nationalDays(date);
            } else {
                return noWeekend;
            }
        }
        function nationalDays(date) {
            for (i = 0; i < natDays.length; i++) {
                if (date.getMonth() == natDays[i][0] - 1 && date.getDate() == natDays[i][2]) {
                    return [false, natDays[i][2] + '_day'];
                }
            }
            return [true, ''];
        }
        function AddWeekDays(weekDaysToAdd) {
            var daysToAdd = 0
            var mydate = new Date()
            //alert(mydate);
            var day = mydate.getDay()
            //alert(day);
           // alert(weekDaysToAdd);
            weekDaysToAdd = weekDaysToAdd - (5 - day)
            if ((5 - day) < weekDaysToAdd || weekDaysToAdd == 1) {
                daysToAdd = (5 - day) + 2 + daysToAdd
            } else { // (5-day) >= weekDaysToAdd
                daysToAdd = (5 - day) + daysToAdd
            }
            while (weekDaysToAdd != 0) {
                var week = weekDaysToAdd - 5
                if (week > 0) {
                    daysToAdd = 7 + daysToAdd
                    weekDaysToAdd = weekDaysToAdd - 5
                } else { // week < 0
                    daysToAdd = (5 + week) + daysToAdd
                    weekDaysToAdd = weekDaysToAdd - (5 + week)
                }
            }

            return daysToAdd;
        }

        $('#datepicker').datepicker(
        {
            inline: true,
            beforeShowDay: noWeekendsOrHolidays,
            altField: '#txtCollectionDate',
            showOn: "both",
            dateFormat: "dd/mm/yy",

            changeFirstDay: false,
            minDate: dateMin
        });
    });
</script>


</body>
</html>

收款日期
收集表格
选择收款日期
$(文档).ready(函数(){
var dateMin=新日期();
//警报(dateMin);
var weekDays=添加工作日(5);
警报(平日);
警报(平日);
dateMin.setDate(dateMin.getDate()+工作日);
var natDays=[
[1,1,‘英国’],
[12,25,‘英国’],
[12,26,‘英国’]
];
函数noWeekendsOrHolidays(日期){
var noWeekend=$.datepicker.noWeekends(日期);
if(noWeekend[0]){
返回国家日(日期);
}否则{
立即返回;
}
}
功能国家日(日期){
对于(i=0;i=工作日添加
daysToAdd=(5天)+daysToAdd
}
while(工作日添加!=0){
var week=工作日添加-5
如果(周>0){
daysToAdd=7+daysToAdd
weekDaysToAdd=weekDaysToAdd-5
}else{//周<0
daysToAdd=(5+周)+daysToAdd
weekDaysToAdd=weekDaysToAdd-(5+周)
}
}
返回日期添加;
}
$(“#日期选择器”)。日期选择器(
{
是的,
展览日前:现在是周末或节假日,
altField:“#txtCollectionDate”,
showOn:“两者”,
日期格式:“日/月/年”,
第一天:错,
minDate:dateMin
});
});
截图:


任何人都知道如何破坏这个国庆日

Hello@roopendra,我想从当前日期开始禁用5天。但是在这5天中,如果有太阳或卫星出现,应该跳过这2天,接下来的2天应该出现。在unavailableDates中,我应该写什么?@User25,在unavailableDates变量中,我们需要5天,我们需要找到一条路,这样就不需要周末了。和
beforeShowDay:$.datepicker.noWeekends,
我们已经禁用了周末。你知道这5天是动态的,意味着从当前日期开始需要5天,意味着每天都会改变。@roopendrayes我理解。但我正在寻找一种方法,可以跳过周末,数到5天你好,索德斯拉特,如果我在前一天写的话,那么我的5天没有残疾,只有周末是禁用的。我希望我的5天停用+如果周末有5天,那么应该是SKIP。接下来的日子应该考虑。请在你的问题中详细说明你的问题。是否要禁用5天,是否要禁用5个工作日或其他功能?因此,是否要在datepicker init上选择下一个工作日?