在FullCalendar中显示周数

时间:2013-07-04 16:09:03

标签: jquery date fullcalendar

我正在寻找一种在AgendaWeek视图中显示周数的方法。 我已经尝试了this method但没有结果。

实际上,我需要将数字放在日历标题中

titleFormat:
        {
            month: "'Calendar<br />'MMMM yyyy",
            week: "'Calendar<br />Week' W",
            day: "'Calendar<br />'dddd dd MMM yyyy"
        }

但当然'W'不存在,有没有办法做到这一点?

感谢。

3 个答案:

答案 0 :(得分:3)

您可以使用此选项打开FullCalendar中的周数:

$("#calendar").fullCalendar({
  weekNumbers: true
});

以下是相关文档的链接:http://arshaw.com/fullcalendar/docs/display/weekNumbers/

顺便说一下,如果我在标题格式中使用“W”,则会插入当前周数(包括月,周和日)。您使用的是最新版本的FullCalendar吗?我正在使用v.1.6.1。

  • 雷因

答案 1 :(得分:1)

我之前使用过这段代码:

<script type="text/javascript" language="JavaScript">
function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function getWeek(year,month,day) {
    var when = new Date(year,month,day);
    var newYear = new Date(year,0,1);
    var offset = 7 + 1 - newYear.getDay();
    if (offset == 8) offset = 1;
    var daynum = ((Date.UTC(y2k(year),when.getMonth(),when.getDate(),0,0,0) - Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
    var weeknum = Math.floor((daynum-offset+7)/7);
    if (weeknum == 0) {
        year--;
        var prevNewYear = new Date(year,0,1);
        var prevOffset = 7 + 1 - prevNewYear.getDay();
        if (prevOffset == 2 || prevOffset == 8) weeknum = 53; else weeknum = 52;
    }
    return weeknum;
}

var now = new Date();
alert('Week number = ' + getWeek(y2k(now.getYear()),now.getMonth(),now.getDate()));
</script>

非常简单,getWeek()函数获取年,月和日,并返回周数。

DEMO

希望你想要的东西。

好运!

答案 2 :(得分:0)

我找到了一种方法,这对我有用:

  • 将其放入设置

    viewDisplay:function(view){     if(view.name =='agendaWeek')     {         $(“table.fc-header span.fc-header-title h2”)。append(“
    Week”+ getWeekNumber(view.start));     } },//其他设置......

  • 在fullcalendar设置

    之前将其放在同一个文件中

    函数getWeekNumber(d) { d =新日期(d); d.setHours(0,0,0);

    d.setDate(d.getDate()+ 4 - (d.getDay()|| 7));

    var yearStart = new Date(d.getFullYear(),0,1);

    var weekNo = Math.ceil((((d - yearStart)/ 86400000)+ 1)/ 7);

    return weekNo; }

就是这样。 感谢您之前的回答,我将尝试更新我的完整日历版本。

(抱歉粗文,stackoverflow阻止自己在帖子中插入代码)