【问题标题】:Fullcalendar Repeating Events全日历重复事件
【发布时间】:2018-02-20 12:33:51
【问题描述】:

我正在使用全日历,并希望从 8 月到 11 月每月(周一)重复一次活动。我已经能够重复该事件,但该事件在一周中的每个星期一在一个月内重复四次 - 而我需要在开始日期后的第一个星期一重复一次。以下日期范围与 DOW(星期几)参数一起传递。

 var repeatingEvents = [{
title:"My repeating event",
id: 1,
start: '10:00', 
end: '14:00', 
dow: [ 1, 4 ], 
ranges: [{ //repeating events are only displayed if they are within at least one of the following ranges.
    start: moment().startOf('week'), //next two weeks
    end: moment().endOf('week').add(7,'d'),
},{
    start: moment('2015-02-01','YYYY-MM-DD'), //all of february
    end: moment('2015-02-01','YYYY-MM-DD').endOf('month'),
},/*...other ranges*/],
},/*...other repeating events*/];

有什么方法可以每月重复一次,从开始日期运行到结束日期?任何帮助将不胜感激

【问题讨论】:

    标签: javascript fullcalendar recurring-events


    【解决方案1】:

    不幸的是,没有对这种东西的内置支持。如果您想使用所示的“范围”数组,这是一个完全自定义的属性,因此您需要一些自定义代码来处理它们。您似乎使用了与此答案相同的结构:Recurring Events in FullCalendar。在这种情况下,您还需要该答案中显示的“eventRender”回调中的自定义代码,以便应用范围定义。

    另一种解决方案是简单地更改您的服务器端代码,以便在 fullCalendar 请求的日期范围内为每个所需的事件重复生成一个单独的事件对象到 JSON 中。

    【讨论】:

      【解决方案2】:

      如果您无法按照@ADyson 的建议在服务器端生成事件,您可以使用 Javascript 来生成。这会在指定的开始日期和结束日期之间查找该月的第一个星期一。

      var id=0, event, events = [],
          start=moment('2017-08-01'),
          end=moment('2017-10-31');
      
      while (start.isBefore(end)) {
          id++;
          if (start.day() === 'Monday') {
              day = start.format('YYYY-MM-DD');
          } else {
              day = start.add(1, 'weeks').startOf('isoWeek').format('YYYY-MM-DD');
          }
          event = {
              title:"My repeating event",
              id: id,
              start: day + ' 10:00:00', 
              end: day + ' 14:00:00', 
          }
          events.push(event);
          start.add(1, 'month').startOf('month');
      }
      

      然后在日历中使用您构建的事件数组:

      $('#calendar').fullCalendar({
          events: events,
          // ...
      

      【讨论】:

        猜你喜欢
        • 2022-11-24
        • 2010-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多