如何在全日历中为重复事件指定时区?

问题描述 投票:0回答:1

我使用 fullcalendar 为在线公会制作活动日历。我们每周有两次公会任务,偶尔也会举办特别活动。我将祖鲁时间的事件保存在 JSON 中,并显示为当地时间以帮助协调。

代码片段:

[
  {
    "title": "Guild Missions",
    "start": "21:15",
    "end": "21:45",
    "dow": [
      0
    ],
    "color": "#00688B"
  },
  {
    "title": "Guild Missions",
    "start": "02:15",
    "end": "02:45",
    "dow": [
      2
    ],
    "color": "#00688B"
  },
  {
    "title": "Event",
    "start": "2015-06-14T02:00:00Z",
    "end": "2015-06-14T06:00:00Z",
    "allDay": false
  },
  <and many more events>
]

所以一次性事件有 Z 规范,显示在 EST、PST 等,但我找不到任何使用跨时区重复事件来了解如何格式化公会任务的示例。它始终是硬编码的周日晚上 9:15 和周二凌晨 2:15,而不是显示太平洋标准时间周日下午 2:15 和周一太平洋标准时间下午 7:15

javascript fullcalendar
1个回答
0
投票

如果您需要对重复事件的时区支持,您应该使用 rrule 插件 而不是 simple recurring object。 “dtstart”字段可以采用分区日期时间字符串,例如“2023-05-01T14:30:00Z”(UTC)。

示例事件对象:

      {
        id: "eventId",
        title: "eventTitle",
        rrule: {
          freq: 'weekly',
          interval: 5,
          byweekday: [ 'mo', 'fr' ],
          dtstart: '2023-05-01T14:30:00Z',
          until: '2023-12-01'
        }
      }

您可以从 npm 安装 rrule 插件并导入您的日历选项,就像日期网格或时间网格插件一样。这是 rrule 的完整文档:https://github.com/jakubroztocil/rrule

© www.soinside.com 2019 - 2024. All rights reserved.