【问题标题】:FullCalendar rrule "Until" not being inclusiveFullCalendar 规则“直到”不包含在内
【发布时间】:2020-02-26 09:57:48
【问题描述】:

rrule 插件的规范说直到日期是包容性的。我没有看到。我是不是看错了?

https://github.com/jakubroztocil/rrule

如果给定,这必须是一个 Date 实例,它将指定重复的限制。如果重复实例恰好与 until 参数中给出的 Date 实例相同,则这将是最后一次出现。

我有这个测试:

calendaring.testRecur = function(dayOrWeek){
var rruleDataWeekly = {
    freq: 'WEEKLY',
    interval: 1,
    byweekday: [ 'MO', 'WE', 'FR' ],
    dtstart: '2019-11-01T10:30:00',
    until: '2019-11-15'
};
var rruleDataDaily = {
    freq: 'DAILY',
    interval: 1,
    count: 5,
    dtstart: '2019-11-04T09:30:00',
};

var rruleData = dayOrWeek === "day" ? rruleDataDaily :  rruleDataWeekly;
var title = dayOrWeek === "day" ? "Test Daily" :  "Test Weekly";

var newEvent = {
    title: title,
    duration: "00:45",
    rrule: rruleData
};
calendaring.calendar.addEvent(newEvent);};

这是我的日历配置:

 calendaring.calendar = new Calendar(calendarEl, {
    events: '/myurl',
    plugins: ['rrule', 'interaction', 'dayGrid', 'timeGrid', 'bootstrap', 'list'],
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'dayGridMonth,timeGridWeek,timeGridDay, listDay',
    },
    defaultView: 'timeGridWeek',

    slotDuration: '00:15',
    slotLabelInterval: '01:00',
    minTime: '06:00',
    maxTime: '21:00',
    allDaySlot: false,
    slotEventOverlap: false,
    buttonText: {
        today: 'Today',
        month: 'Month',
        week: 'Week',
        day: 'Day',
        list: 'List',
    },
    themeSystem: 'bootstrap',
    editable: true,
    selectable: true,
    droppable: true,
    fixedWeekCount: false,
    hiddenDays: [ 0, 6 ],
    eventLimit: 6,

});
calendaring.calendar.render();};

【问题讨论】:

  • 我现在没有时间测试它,但是 fullCalendar 认为结束日期是排他性的……所以那里可能存在冲突的规则。我不知道 fullCalendar 在内部是如何处理的。
  • 谢谢。这是第一个猜测,但所有 rrule 文档都交给了此处引用的文档。这就是我寻求澄清的原因。
  • 您可以在jakubroztocil.github.io/rrule 测试您的规则,它会为您提供输出。我认为,这应该告诉您您的假设是否正确,以及给您带来问题的是 rrule 还是 fullCalendar。
  • 感谢您的链接,我一直在那里进行测试。这似乎是一个 FullCalendar 问题。此规则在截止日期结束:new RRule({ freq: RRule.WEEKLY, dtstart: new Date(Date.UTC(2019, 10, 1, 15, 0, 0)), until: new Date(Date.UTC( 2019, 10, 15, 15, 0, 0)), 间隔: 1, byweekday: [RRule.MO, RRule.WE, RRule.FR] })
  • FTR,就 RFC 5545 而言,您的规则将是无效的,因为 UNTIL 组件必须有一个时间组件,如果 DTSTART 有一个。

标签: javascript calendar fullcalendar fullcalendar-4 rrule


【解决方案1】:

问题是我没有与我的 UNTIL 相关联的时间。因此,它假定为午夜,而不是 23:59:59。呸。感谢@ADyson 的帮助。

【讨论】:

    【解决方案2】:

    您可以使用下面的代码显示一天、每天、每周、每两周和每月事件,并带有鼠标悬停事件的工具提示。

    在此示例中,您可以看到我们如何在 FullCalendar 中设置 rrule

    访问这里-https://stackoverflow.com/a/68770685/9673996

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多