【问题标题】:How to set different firstDay on different view (Month,Week) in Full Calendar如何在完整日历的不同视图(月、周)上设置不同的 firstDay
【发布时间】:2017-05-19 09:27:07
【问题描述】:

我想设置当前日期以在完整日历中开始周视图。

按照我们归档所有视图(月和周)的方式:

calendar: {
   firstDay:moment().day();
   }

【问题讨论】:

    标签: jquery angular fullcalendar


    【解决方案1】:

    将默认视图设置为周视图。

    $('#calendar').fullCalendar({
        header: {
        ...
        },
        defaultView: 'month',
        .
        .
    }    
    

    有关完整日历提供的可用视图的更多信息,请访问here

    【讨论】:

      【解决方案2】:

      你可以这样调用函数

      function getMonday(d) {
        d = new Date(d);
        var day = d.getDay(),
            diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday
        return new Date(d.setDate(diff));
      }
      
       calendar: {
           firstDay:getMonday(new Date())
      } 
      

      【讨论】:

      • 感谢您的重播,这样,我们在所有视图中实现了相同的开始日期。但我只想在特定视图中开始一天。
      【解决方案3】:

      虽然这个问题被问到已经有一段时间了,但这可能会在未来对其他人派上用场。就我而言,我最终通过检查viewRender 回调的当前视图来动态更新选项firstDay

      var currentView = '',
        d = new Date(),
        today = d.getDay(),
        dow = 1;
      $('#calendar').fullCalendar({
        header: {
          left: 'prev,next',
          center: 'title',
          right: 'month,agendaWeek'
        },
        defaultDate: d,
        navLinks: true,
        firstDay: 1, //Monday
        viewRender: function(view) {
          if (view && view.name !== currentView) {
            if (view.name === 'agendaWeek') {
              dow = today;
            } else {
              dow = 1;
            }
            setTimeout(function() {
              $("#calendar").fullCalendar('option', 'firstDay', dow);
            }, 10);
          }
          if (view) {
            currentView = view.name;
          }
        }
      });

      这是working example。在周视图和月视图之间切换,第一天将从月视图中的星期一更改为周视图中的当前日期。

      【讨论】:

        【解决方案4】:

        经过测试,似乎无法为特定视图设置 firstDay。如我错了请纠正我。根据https://fullcalendar.io/docs/views/View-Specific-Options/,我尝试使用特定于视图的选项:

        views: {
                agendaWeek: { // name of view
                    firstDay: moment().day()
                }
            }
        

        但它似乎对相关视图没有影响。我也尝试了其他视图(例如月份),但也没有用。所以我不认为你可以为每个视图定义不同的“firstDay”。

        这只是我的观点,但我认为对于不同的观点有不同的第一天可能会让用户感到困惑,所以这可能是不可能的原因。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-05
          相关资源
          最近更新 更多