jQuery fullCalendar 每小时事件结束时间

jQuery fullCalendar hourly event endTime

我在我的应用程序中使用 jQuery fullCalendar

因为我在我的代码中使用了 displayEventEnd: true,所以在日历中它将事件显示为 startTime - endTime Title,例如09:00 - 12:00 Meeting.

但是当事件是每小时事件时,它只会说 09:00 Meeting,而不是 09:00 - 10:00 Meeting

我想一直显示结束时间。感谢您的帮助。

来自 displayEventEnd 文档:

If an event does not have an end date/time, it won't be displayed anyway, regardless of this setting.

来自 OP:

But when an event is an hourly event, it only says 09:00 Meeting, not 09:00 - 10:00 Meeting.

在那种情况下,您是唯一知道这是 1 小时范围的人,因为未提供 end:

我不确定你是否被允许修改库,但是当我查看 fullcalendar.jsfullcalendar.min.js 时(检查你在 html 中的参考)我明白了以下部分格式化事件元素中的文本。

getEventTimeText: function(range, formatStr) {

        formatStr = formatStr || this.eventTimeFormat;

        if (range.end && this.displayEventEnd) {
            return this.view.formatRange(range, formatStr);
        }
        else {
            return range.start.format(formatStr);
        }
    }

如果替换

return range.start.format(formatStr);

return range.start.format(formatStr) + ' - ' + range.start.clone().add(1,'hour').format(formatStr);

它将相应地工作。

编辑

下面这个版本更好看

if (range.end && this.displayEventEnd) {
    return this.view.formatRange(range, formatStr);
}
else if (this.displayEventEnd){
    return range.start.format(formatStr) + ' - ' + range.start.clone().add(1,'hour').format(formatStr);
    //or 
    //return this.view.formatRange({start: range.start,end: range.start.clone().add(1,'hour')}, formatStr ,' - ');
}
else{
    return range.start.format(formatStr);
}