如何获取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
相关产品推荐
相关产品推荐

