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

如何获取FullCalendar中eventResize和eventDrop的旧事件时间信息

获取FullCalendar拖拽/调整事件时的旧时间

在FullCalendar的eventDrop(拖拽事件)和eventResize(调整事件大小)回调中,传入的info参数包含oldStart和oldEnd属性,直接就能拿到事件修改前的开始、结束时间,无需额外处理。

修改后的代码示例:

var calendar = new Calendar(calendarEl, {
  events: [
    // 事件数据
  ],
  editable: true,
  eventDrop: function(info) {
    // 获取事件修改前后的时间
    const oldStart = info.oldStart;
    const oldEnd = info.oldEnd;
    const newStart = info.event.start;
    const newEnd = info.event.end;

    alert(`${info.event.title} 原开始时间:${oldStart.toISOString()},新开始时间:${newStart.toISOString()}`);

    if (!confirm("确定要修改这个事件的时间吗?")) {
      info.revert();
    }
  },
  eventResize: function(info) {
    const oldStart = info.oldStart;
    const oldEnd = info.oldEnd;
    const newEnd = info.event.end;

    alert(`${info.event.title} 原结束时间:${oldEnd.toISOString()},新结束时间:${newEnd.toISOString()}`);

    if (!confirm("确定要调整这个事件的时长吗?")) {
      info.revert();
    }
  }
});

关键属性说明:

  • info.oldStart:事件修改前的开始时间,是标准的JavaScript Date对象
  • info.oldEnd:事件修改前的结束时间,同样是Date对象
  • 可以使用toISOString()、toLocaleString()等方法将Date对象转换为你需要的时间格式
  • 调用info.revert()会将事件恢复到修改前的状态,适合在用户取消确认时使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:18:24