我使用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
如果您需要对重复事件时区的支持,您应该使用rrule插件,而不是简单的重复对象。字段";dtstart";可以采用分区日期时间串,如";2023-05-01T14:30:00Z";(UTC)。
示例事件对象:
{
id: "eventId",
title: "eventTitle",
duration: "01:30",
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