gpt4 book ai didi

javascript - 加入两个函数 JqueryUI datepicker for "beforeShowDay"

转载 作者:行者123 更新时间:2023-11-30 17:53:36 25 4
gpt4 key购买 nike

非常感谢您花时间阅读。我有一个允许预订和选择日期的日历,但我需要禁用特定的工作日、月份,以及某些旅行的第三个星期五或第二个星期二。所以我有 @Thierry J. 帮助我清理的这个功能,但我需要将它加入最后一个功能(仅激活第三个星期五或第二个星期二,依此类推)。

var daysToDisable = [1, 4, 6];
var monthsToDisable = [9];

function disableSpecificWeekDays(date) {
var day = date.getDay();
if ($.inArray(day, daysToDisable) != -1) {
return [false];
}

var month = date.getMonth();
if ($.inArray(month, monthsToDisable) != -1) {
return [false];
}
return [true];
}

要只激活所选月份的第三个星期五,我有这个功能:

var day = date.getDay();
var date = date.getDate();
return [(day == 5 && date >= 15 && date <= 21), ''];

所以我想知道是否可以将所有这些功能一起用于 beforeShowDay,但能够选择具有这些限制的行程。 “停用天数”和“停用月数”函数已准备就绪并可使用以下变量:

var daysToDisable = [1, 4, 6];
var monthsToDisable = [9];

我希望有可能在特定的工作日以相同的方式禁用:

var specificdaysToDisable = []

此外,如果有更好的编码可能性,那么我将能够停用一次旅行的第三个星期五,另一次旅行的第二个星期二,然后我愿意接受建议。

提前致谢!

最佳答案

要知道是否是第三周而不是检查日期是否在 14 到 22 之间,您可以编写自己的 Date.prototype.getWeekOfMonth 函数来获取月份的周数和比用它来检查条件。

代码:

Date.prototype.getWeekOfMonth = function(exact) {
var month = this.getMonth()
, year = this.getFullYear()
, firstWeekday = new Date(year, month, 1).getDay()
, lastDateOfMonth = new Date(year, month + 1, 0).getDate()
, offsetDate = this.getDate() + firstWeekday - 1
, index = 1 // start index at 0 or 1, your choice
, weeksInMonth = index + Math.ceil((lastDateOfMonth + firstWeekday - 7) / 7)
, week = index + Math.floor(offsetDate / 7)
;
if (exact || week < 2 + index) return week;
return week === weeksInMonth ? index + (weeksInMonth -1 ) : week;
};

jQuery("#datepicker").datepicker({
beforeShowDay: disableSpecificWeekDaysandMonths,
});

var daysToDisable = [0, 2, 3, 4, 6];
var monthsToDisable = [1, 2];
var specificDaysToDisable = [5];

function disableSpecificWeekDaysandMonths(date) {

var day = date.getDay();
if ($.inArray(day, daysToDisable) != -1) {
return [false];
}

var month = date.getMonth();
if ($.inArray(month, monthsToDisable) != -1) {
return [false];
}

var date2 = date.getDate();
var inArray = $.inArray(day, specificDaysToDisable)
if (inArray != -1 && date.getWeekOfMonth()!=3) {
return [false];
}
return [true]
}

演示:http://jsfiddle.net/IrvinDominin/yFtLP/11/

关于javascript - 加入两个函数 JqueryUI datepicker for "beforeShowDay",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com