首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定minDate时排除beforeShowDay

确定minDate时排除beforeShowDay
EN

Stack Overflow用户
提问于 2011-05-26 17:39:54
回答 1查看 973关注 0票数 3

我使用beforeShowDay来排除节假日和周末,但是我希望在计算minDate时排除beforeShowDays。

例如,如果一周中的当前一天是星期五,而minDate是2,我希望将周末排除在等式之外。因此,您可以选择的第一个日期不是星期一,而是星期三。

这是我的jQuery:

代码语言:javascript
复制
$( "#date" ).datepicker({
minDate: 2, maxDate: "+12M", // Date range
beforeShowDay: nonWorkingDates
});

有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2011-05-27 01:59:44

这样如何:

代码语言:javascript
复制
function includeDate(date) {
    return date.getDay() !== 6 && date.getDay() !== 0;
}

function getTomorrow(date) {
    return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
}

$("#date").datepicker({
    beforeShowDay: function(date) {
        return [includeDate(date)];
    },
    minDate: (function(min) {
        var today = new Date();
        var nextAvailable = getTomorrow(today);
        var count = 0;
        var newMin = 0; // Modified 'min' value

        while(count < min) {
            if (includeDate(nextAvailable)) {
                count++;
            }
            newMin++; // Increase the new minimum
            nextAvailable = getTomorrow(nextAvailable);            
        }
        return newMin;
    })(2) // Supply with the default minimum value.
});

基本上,利用已经为beforeShowDay定义的方法,找出下一个有效日期在哪里。如果我的逻辑是正确的(并且您只排除了周末),那么如果有周末(星期四),这个值只能是2或4: 2。或星期五),如果不是,则为2。

如果你排除了其他日子,事情就会变得更加复杂,但我认为逻辑仍然存在。

下面是关于fiddle的代码:http://jsfiddle.net/TpSLC/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6136544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档