3

我正在尝试确定一个 jQuery 插件,它将显示整月的日期长度方式(如下所示 - 数字反映了一个月中的天数(仅限工作日)。

-3 4 5 6 7- -10 11 12 13 14- -17 18 19 20 21- -24 25 26 27 28-

从理论上讲,这种方法使当月的某一天成为列 - 然后可以在下面将几个人的日历显示为行。如下所示:

---------3 4 5 6 7- -10 11 12 13 14- -17 18 19 20 21- -24 25 26 27 28-
Person A X - - - -   -  -  -  X  -    -  -  -  X  X    -  -  -  -  -
Person B X X X - -   -  X  -  X  -    -  -  X  X  X    X  X  X  -  -

我的问题是“如何使用 jQuery 实现上述目标?(我曾查询 Google 以尝试找到合适的插件 - 但我一直无法确定一个)”。

4

1 回答 1

1

好吧,让你开始吧

(function($){
    var getWeekDaysInCurrentMonth = function(){
        // this will operate off of the current month
        // you can make the month an argument
        // and then d.setMonth(m)

        var d = new Date(), 
            daysInMonth = [], 
            currentDay;

        // go to first day of month
        d.setDate(1);
        var firstDay = d.getDate();
        // go to last day of month
        d.setDate(0);
        var lastDay = d.getDate();

        for (var i = firstDay; i <= lastDay; i++){
            d.setDate(i);
            // get the current day of the week in loop
            currentDay = d.getDay();
            // check not sunday or saturday
            if(currentDay !== 0 && currentDay !== 6)
                daysInMonth.push(i);                
        }
        return daysInMonth;
    };

    console.log(getWeekDaysInCurrentMonth());
    // OUTPUT: [1, 2, 3, 6, 7, 8, 9, 10, 13, 
    //            14, 15, 16, 17, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31] 

})(jQuery)​;​

下一步是将此函数用于 jQuery 插件以输出一些表格标记。然后,您将向您的插件添加配置,以更改标记的显示方式、首先显示的月份等。如果您仔细阅读我的其他一些 jQuery 答案,您可以找到创建 jQuery 插件(或 google)的示例。

于 2012-09-06T15:07:56.240 回答