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

fullcalendar 2.7.3与AngularJS 1.6.9中businessHours显示异常求助

解决FullCalendar 2.7.3 + AngularJS 1.6.9中businessHours显示异常的问题

看起来你遇到的问题是明明只配置了周一和周二的营业时间,但日历却默认显示了周一到周五——这在FullCalendar 2.x版本里通常是配置格式不正确或者默认值未被正确覆盖导致的,我给你梳理几个排查和解决方向:

1. 确认businessHours的配置格式完全符合FullCalendar 2.7.3要求

FullCalendar 2.x中,如果你想指定特定几天的营业时间,必须在每个时间块对象里明确通过daysOfWeek指定天数(注意是0为周日,1为周一,以此类推)。如果省略这个属性,默认会应用到所有工作日(周一到周五),这就是你看到的问题根源。

正确的配置示例(结合AngularJS的ui-calendar指令):

$scope.calendarConfig = {
  calendar: {
    businessHours: [
      {
        daysOfWeek: [1], // 周一
        start: '09:00',
        end: '17:00'
      },
      {
        daysOfWeek: [2], // 周二
        start: '09:00',
        end: '17:00'
      }
    ],
    defaultView: 'agendaWeek',
    // 其他日历配置项
    editable: false,
    header: {
      left: 'prev,next today',
      center: 'title',
      right: 'agendaWeek,agendaDay'
    }
  }
};

2. 检查是否有默认配置或其他代码覆盖了你的设置

如果你用的是AngularJS的ui-calendar插件,要确保你的businessHours配置是直接写在日历的核心配置里,而不是被其他全局默认配置覆盖。比如有些项目会在全局配置里预设businessHours为周一到周五,你需要明确覆盖这个值。

可以在控制台打印当前日历的实际配置,验证是否生效:

// 假设你的日历元素id是calendar
console.log($('#calendar').fullCalendar('option', 'businessHours'));

如果输出的不是你配置的数组,说明有其他代码修改了这个配置。

3. 注意版本特有的属性差异

FullCalendar 2.x版本里,指定天数的属性是daysOfWeek,而更早的版本可能用days。如果你之前参考的是旧版文档,误用了days属性,也会导致配置不生效,默认应用到所有工作日。

4. 排除样式干扰

有时候看起来显示了周一到周五的营业时间,可能是CSS样式的问题——比如其他样式给所有工作日添加了背景色,和businessHours的样式混淆了。可以检查浏览器的元素面板,看看对应日期的DOM是否真的被标记为businessHours。

按上面的步骤排查,应该就能解决你的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:57:10