【问题标题】:Using beforeShowDay in JQuery UI Datepicker to close out days of the week在 JQuery UI Datepicker 中使用 beforeShowDay 来关闭一周中的几天
【发布时间】:2010-02-25 11:36:58
【问题描述】:

我想要做的是在一周中的某些日子里,某个场所在关闭时显示为灰色。每个场地可能在不同的日子关闭。

我可以使用以下代码作为测试来关闭所有星期日:

$('#bookingDatepicker').datepicker({
                minDate: 0, 
                maxDate: '+3M',
                dateFormat: 'DD, d MM, yy',
                altField: '#actualDate',
                altFormat: 'yy-mm-dd',
                beforeShowDay:  closedDays
            });

function closedDays(date) {
  if (date.getDay() == 0){ 
  return [false,"","Venue Closed"]; 
  } else { return [true, ""];
}
}

但是,我可能不得不关闭一天以上,并且它们可能不会并排运行。在我的数据库代码中,我可以创建一个字符串,例如下面的示例,它显示了开放的日期...

1,2,3,4,5,6,0    //I would want to show no days closed
2,3,4,5,6        //I would want to show Sunday (0) and Monday (1) closed

我不知道该怎么做才能让上面的代码正常工作。我正在使用 PHP 创建字符串,因此可以根据需要使用它来操作它。

编辑

像往常一样,当您发布问题时,您会获得一个小突破!我已经开发了下面的代码,如果我在其中使用虚拟数据,它就可以工作,但是我需要找到一种将我的字符串值包装在“”中的方法。这现在给我带来了麻烦,如果我只使用 var cloDays = [2,3,4,5] 它就会停止工作

var cloDays = ["2","3","4","5"]; 
 function closedDays(date){
 var sDate = date.getDay().toString();
 if ($.inArray(sDate, cloDays) == -1) return [false,"","Venue Closed"];
 else return [true, ""];
}

【问题讨论】:

    标签: php jquery jquery-ui


    【解决方案1】:

    这篇文章没有解决我的问题,但为我指明了正确的方向。

    这就是我想要的方式:

    var unavailableDates = ["9-5-2011","10-5-2011"];
    
    function unavailable(date) {
        dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
        if ($.inArray(dmy, unavailableDates) == -1) {
            return [true, ""];
        } else {
            return [false,"","Unavailable"];
        }
    }
    
    $('#iDate').datepicker({ minDate: +1, beforeShowDay: unavailable });
    

    这会阻止过去的所有日期,包括今天,然后阻止在 availableDates 数组中指定的日期。

    【讨论】:

      【解决方案2】:

      通过下面的代码运行我的字符串来修复它,基本上将它分解为一个 PHP 数组,然后使用 JSON_Encode 对其进行编码。似乎工作完美:

      $cloDays = json_encode(explode(",", $cloDays));  
      

      【讨论】:

        猜你喜欢
        • 2012-04-27
        • 1970-01-01
        • 2012-03-10
        • 2011-06-27
        • 2017-12-12
        • 2017-04-20
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多