我正在向fullcalendar传递类似这样的事件:
{
id: 31,
title: 'Test',
start: '2014-12-22',
end: '2014-12-23',
allDay: true
}
我希望在日历中找到一个跨越两天的活动,但该活动仅在2014-12-22
位置,而不在2014-12-23
位置。 nextDayThreshold参数设置为00:00:00
,但根据文档,当allDay设置为true时,应忽略它。我确信allDay被正确解释,因为在议程视图中,事件出现在全天行中。
如何设置fullcalendar以在两天内显示此类事件?
答案 0 :(得分:8)
根据eventDataTransform function,如果您的活动是allDay,则可以添加1天。请注意,这只会影响渲染。
eventDataTransform: function(event) {
if(event.allDay) {
event.end = moment(event.end).add(1, 'days')
}
return event;
}
答案 1 :(得分:5)
我认为这是一个有意识的设计决定,因为根据this和this这样的讨论,所有结束日期都被认为是排他性的,即尽管是一整天的活动,但结束了日期不被视为包含(包括)标记的日期。例如如果您的开始日期为2015-03-01 00:00:00
且结束日期为2015-03-02 00:00:00
,那么 span 只有一天。
这似乎与version 2 upgrade to using moment.js重合。因此,您可能需要在结束日期添加“23:59:59”,或者找到指定结束日期的其他方式,例如:作为开始日期的两天的持续时间?
答案 2 :(得分:0)
在 ajax GET 上添加一天的所有事件
moment(end_date, 'YYYY-MM-DD').add(1, 'days').format('YYYY-MM-DD HH:mm:SS')
在 ajax POST(更新)中减去(1,'days')
moment(eventChange_end, 'YYYY-MM-DD').subtract(1, 'days').format('YYYY-MM-DD HH:mm:SS')