当前位置: 首页 > 面试题库 >

可以使jQuery UI Datepicker禁用周六和周日(和节假日)吗?

祁修平
2023-03-14
问题内容

我使用日期选择器选择约会日期。我已经将日期范围设置为仅下个月。很好 我想从可用选项中排除周六和周日。能做到吗?如果是这样,怎么办?


问题答案:

有一个beforeShowDay选项,该选项需要为每个日期调用一个函数,如果允许日期,则返回true,否则,则返回false。从文档:

ShowShow之前

该函数将日期作为参数,并且必须返回一个数组,该数组的[0]等于true/false,表示此日期是否可选,默认表示形式为1,该数组等于CSS类名或。在日期选择器中的每一天都会调用它,然后再显示它。

在日期选择器中显示一些国定假日。

$(".selector").datepicker({ beforeShowDay: nationalDays})

natDays = [
  [1, 26, 'au'], [2, 6, 'nz'], [3, 17, 'ie'],
  [4, 27, 'za'], [5, 25, 'ar'], [6, 6, 'se'],
  [7, 4, 'us'], [8, 17, 'id'], [9, 7, 'br'],
  [10, 1, 'cn'], [11, 22, 'lb'], [12, 12, 'ke']
];

function nationalDays(date) {
    for (i = 0; i < natDays.length; i++) {
      if (date.getMonth() == natDays[i][0] - 1
          && date.getDate() == natDays[i][1]) {
        return [false, natDays[i][2] + '_day'];
      }
    }
  return [true, ''];
}

存在一个内置函数,称为noWeekends,它可以防止选择周末。

$(".selector").datepicker({ beforeShowDay: $.datepicker.noWeekends })

要将两者结合起来,您可以做类似的事情(假设nationalDays上面的函数):

$(".selector").datepicker({ beforeShowDay: noWeekendsOrHolidays})

function noWeekendsOrHolidays(date) {
    var noWeekend = $.datepicker.noWeekends(date);
    if (noWeekend[0]) {
        return nationalDays(date);
    } else {
        return noWeekend;
    }
}

更新 :请注意,从jQueryUI1.8.19开始,beforeShowDay选项还接受可选的第三个html" target="_blank">参数,即弹出工具提示



 类似资料:
  • 正如我在前一个问题中提到的,我正在使用优秀的OptaPlanner库创建一个应用程序,该应用程序可以帮助定制job shop进行项目调度。该应用程序具有以下要求: “除非经理特别批准,否则申请不得在任何给定的周末或假日安排工作。” 我很好奇如何更改我的域模型或评分函数以纳入此要求。一个基本想法是将全球可再生资源(即员工)的容量从每月30天减少到每月22天(包括周末)。然而,我已经看到,这是一种幼稚

  • 我如何在AWS上每周日和周三凌晨2点UTC运行cron作业。 时间很好,只是天数似乎是错误的格式(通过无服务器获取)。但是我能找到的所有资源都只做状态范围的天数,如何选择单个资源?

  • 问题内容: 我想查找给定月份中的所有星期六和星期日。我该怎么办? 问题答案: 在 最简单 的方法是只迭代所有在一个月的日子里,检查一周的某一天为他们每个人。例如: 我 绝对可以确定 ,这样做的方式要高效得多-但这就是我的出发点,当发现速度太慢时进行优化。 请注意,如果您能够使用Joda Time,那将使您的生活更加轻松…

  • 假设我有一些账单,上面有开始日期和结束日期。 我要检查的商业规则是 例如,3月10日到4月9日大约相隔一个月,所以我用它来检查任何两个连续的账单开始日期(4月10日和3月10日)是否相隔一个月。 现在我的问题是求周期的长度。例如,假设我有以下数据集 我正在使用JodaTime库,所以我说类似这样的话 它返回0,这是正确的,但没有用处。 结果是1,尽管相隔一天。 有什么更好的方法来做到这一点?我可以

  • 问题内容: 我需要计算两个日期之间的天数(工作日),不包括周末(最重要)和假期 但是,我不知道该如何在MySQL中进行操作,我发现本文计算了两个日期之间的天数,不包括周末(仅MySQL)。我无法弄清楚如何在mysql中进行功能查询,能否提供一些有关如何使用mysql查询实现此功能的信息。如果我想念什么,请告诉我。 [编辑] 问题答案: 您可能要尝试以下操作: 计算工作日数(从此处获取) 这为您提供

  • 我有这样的复选框: 例如,如果选择周一、周三、周五、周六、周日。返回周一、周三、周五-周日 例如,如果选择Sat, Sun.返回Sat-Sun 例如,如果选择Mon, Tue, Thu, Sat, Sun返回Mon, Tue, Thu, Sat, Sun 我该如何实现这一点?这可能吗?