You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FullCalendar timeGridWeek/timeGridDay视图不显示事件求助

解决FullCalendar 6.1.4 timeGridWeek/timeGridDay视图事件消失问题

以下是几个实用的排查和解决方向:

1. 校验事件时间格式

FullCalendar对时间格式要求严格,确保事件的start/end是ISO 8601格式字符串(如'2024-05-20T09:00:00')或合法的JavaScript Date对象。如果是自定义格式,必须转换后再传入:

// 正确示例:使用Date对象
events: [
  {
    title: '会议',
    start: new Date('2024-05-20T09:00:00'),
    end: new Date('2024-05-20T10:30:00'),
    allDay: false
  }
]

2. 确认timeGridPlugin注册正确

初始化日历时,plugins数组必须同时包含dayGridPlugin和timeGridPlugin,缺一不可:

document.addEventListener('DOMContentLoaded', function() {
  const calendarEl = document.getElementById('calendar');
  const calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: ['dayGridPlugin', 'timeGridPlugin'], // 必须同时注册
    initialView: 'dayGridMonth',
    // 可选:显式声明视图配置(如果自定义过)
    views: {
      timeGridWeek: { type: 'timeGrid', duration: { weeks: 1 } },
      timeGridDay: { type: 'timeGrid', duration: { days: 1 } }
    },
    events: [...]
  });
  calendar.render();
});

3. 检查allDay属性设置

如果事件标记为allDay: true,但timeGrid视图的全天槽被关闭,事件会被隐藏。解决方式:

  • 非全天事件务必设置allDay: false
  • 或者在timeGrid视图中开启全天槽:
views: {
  timeGridWeek: { allDaySlot: true }
}

4. 排查视图时间范围限制

如果给timeGrid视图设置了visibleRange,确认范围没有排除事件的时间:

// 错误示例:范围过窄导致事件不在视图内
views: {
  timeGridDay: {
    visibleRange: {
      start: '2024-05-20T12:00:00',
      end: '2024-05-20T18:00:00'
    }
  }
}

若有此类配置,移除或调整为合理范围。

5. 检查CSS样式冲突

用浏览器开发者工具查看.fc-event元素,确认没有被自定义CSS设置display: none、opacity: 0或被其他元素遮挡。

6. 验证事件加载逻辑

如果事件是异步加载的,在datesSet回调中打印事件数据,确认切换视图时数据是否正常加载:

datesSet: function(info) {
  console.log('当前视图时间范围:', info.start, info.end);
  console.log('当前已加载事件:', calendar.getEvents());
}

内容的提问来源于stack exchange,提问作者amine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 09:52:56