繁体   English   中英

Fullcalendar 重复事件转移到前一天

[英]Fullcalendar recurring event is shifted for the day before

这就是我们现在的情况。 用户位于太平洋时区并希望创建重复事件:

  • 开始日期:2021 年 11 月 22 日
  • 结束日期:2021 年 11 月 29 日
  • 开始时间:下午 6:30
  • 结束时间:8:30 PM
  • 重复日:周一、周四
  • 频率:每周

Fullcalendar 时区设置为“本地”,我们将时间转换为 UTC。 因此,当我们转换用户输入时,我们创建了这样的规则 object:

"rrule": {
    "freq": 2,
    "interval": 1,
    "byweekday": [
        0,
        3
    ],
    "dtstart": "2021-11-23T02:30:00Z",
    "until": "2021-11-30T04:30:00Z"
}

但是事件被推迟了一天:事件在周日和周三重复,而不是周一和周四。

在此处输入图像描述

当我们创建 PT 时间和 UTC 时间“在同一天”(例如从下午 3 点到 4 点)的事件时,一切都很好。

在此处输入图像描述

此外,当我们从下午 6:30 到晚上 8:30 创建非重复事件时,一切都很好。

Fullcalendar 版本为 5.9.0,规则版本为 2.6.8。

我们缺少什么?

您已指定事件在指定日期范围内的每周一和周四凌晨02:30:00Z发生。

请注意,这是UTC时间的星期一和星期四。

在太平洋时间, 02:30:00Z是前一天的18:30:00 因此,在 UTC 时间的星期四早上再次发生的事件实际上将在太平洋时间的星期三晚上发生。

根据给出的数据,fullCalendar 所做的事情是完全正确和合乎逻辑的。

我认为您的问题可能出在哪里,当您收到用户的此重复事件请求并将日期和时间转换为 UTC 时,您没有考虑该时区更改是否在逻辑上也会影响重复天数指定的。 例如,我假设在上述情况下,您希望将重复日期提前一天,因为 UTC 转换会导致时间转移到第二天。

这取决于您希望它如何工作,显然我目前看不到您如何进行转换过程,因此我将不得不将实现细节留给您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM