【问题标题】:Show week number in FullCalendar在 FullCalendar 中显示周数
【发布时间】:2013-07-02 17:04:09
【问题描述】:

我正在寻找一种在日程周视图上显示周数的方法。 我试过this method 但没有结果。

其实我需要像这样把数字放在日历标题里

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

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

谢谢。

【问题讨论】:

    标签: jquery date fullcalendar


    【解决方案1】:

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

    将其放在设置中:

    viewDisplay: function(view) {
          if (view.name == 'agendaWeek')
          {
              $("table.fc-header span.fc-header-title h2").append("<br />Week " + getWeekNumber(view.start));
          }
       }, // others settings...
    

    将其放在同一个文件中,在完整日历设置之前

    function getWeekNumber(d) {
      d = new Date(d);
      d.setHours(0, 0, 0);
    
      d.setDate(d.getDate() + 4 - (d.getDay() || 7));
    
      const yearStart = new Date(d.getFullYear(), 0, 1);
    
      const weekNo = Math.ceil(((d - yearStart) / 86400000 + 1) / 7);
    
      return weekNo;
    }
    

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      • 雷金

      【讨论】:

        【解决方案3】:

        我之前用过这段代码:

        <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

        希望如你所愿。

        祝你好运!

        【讨论】:

        • 这是一个很好的功能。我现在需要将 W 和这个函数关联到日历设置中,但我不知道在哪里,我的 fullcalendar.min.js 不可读,除非有其他方法......谢谢。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-21
        • 2013-06-02
        • 1970-01-01
        • 2018-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多