You need to enable JavaScript to run this app. FullCalendar v3如何同时加载PHP接口与政府假日API两个事件源
优惠活动
大模型
产品
解决方案
定价
更多

FullCalendar v3如何同时加载PHP接口与政府假日API两个事件源

FullCalendar v3双事件源加载解决方案

问题根因

你配置的法定假日API返回格式为{日期字符串: 节日名称}的键值对对象,不符合FullCalendar默认要求的事件数组结构,所以直接配置到eventSources中时,框架无法识别解析,不会进入eventDataTransform回调;自定义拉取函数则存在变量名错误、未将格式化后的事件接入日历实例的问题。


方案一:直接配置eventSources实现双源加载

给假日事件源添加success回调,在回调中完成数据格式转换即可,完整配置如下:

$('#calendar').fullCalendar({
  eventSources: [
    // 法定假日事件源
    {
      url: 'https://calendrier.api.gouv.fr/jours-feries/metropole.json',
      type: 'GET',
      success: function(res) {
        const events = []
        for (const day in res) {
          events.push({
            title: res[day],
            start: day,
            allDay: true,
            color: '#ff9f89' // 单独设置假日事件颜色,区分自定义事件
          })
        }
        return events
      }
    },
    // 原有自定义事件源
    {
      url: myevents.php,
      type: 'GET',
      data: {
        param: parametreFilter
      }
    }
  ],
  header: {
    left: 'prev,next today',
    center: 'title',
    right: 'month,agendaWeek,agendaDay'
  },
  lazyFetching: false,
  editable: true,
  droppable: true,
  dragScroll: true,
  defaultView: 'agendaWeek'
  // 其余原有配置保持不变
})

方案二:修复自定义getHolidays函数

你原函数中的变量引用错误,且没有将格式化后的事件同步到日历实例,修复后代码如下:

// 日历初始化后调用该函数即可
function getHolidays(url) {
  fetch(url)
    .then(function(res) {
      if (res.ok) {
        return res.json().then(function(days) {
          const holidays = []
          for (const day in days) {
            holidays.push({
              title: days[day],
              start: day,
              allDay: true,
              color: '#ff9f89'
            })
          }
          // 直接将格式化后的事件源添加到日历实例
          $('#calendar').fullCalendar('addEventSource', holidays)
        })
      } else {
        console.log("假日接口请求失败")
      }
    })
    .catch(function(err) {
      alert("请求错误: " + err)
    })
}

调用方法:在日历初始化完成后执行getHolidays('https://calendrier.api.gouv.fr/jours-feries/metropole.json')即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 22:45:08