完整日历时间间隔应为1小时,从6:30开始

Par*_*gra 6 javascript jquery fullcalendar

我尝试了这个实现完整日历实现.

    $("#available_classes_calendar").fullCalendar({
        header: {
             left   : 'prev,next',
             center : 'title'
            },
        defaultView: 'agendaWeek',
        views:{
            agenda:{
                allDaySlot: false,
                minTime: "06:30:00",
                maxTime: "24:00:00",
                slotDuration: "00:60:00"
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

在这个全天列应该从早上6:30开始,间隔时隙应该是1小时.

因此,全天列应如下所示:

早上6:30,早上7:30,上午8:30...晚上11:30

我尝试了很多解决方案,但无法实现这一目标.

如果需要任何其他信息来解决此问题,请与我们联系.

谢谢 @lucasnadalutti小提琴的截图

Luí*_*ruz 5

您的问题就是放置选项的地方。它应该是

$("#available_classes_calendar").fullCalendar({
    header: {
         left   : 'prev,next',
         center : 'title'
        },
    defaultView: 'agendaWeek',
    allDaySlot: false,
    minTime: "06:30:00",
    maxTime: "24:00:00",
    slotDuration: "06:00:01"
});
Run Code Online (Sandbox Code Playgroud)

关于显示器06:3007:30等等,在纵轴上,你需要设置slotDuration: "06:30:01"。看看这个jsfiddle

最重要的是要注意的01第二件事slotDuration。没有这个,您将无法显示半小时。


关于为什么需要“ +01”秒的解释:

FullCalendar支持半小时或任何您想要的时间轴,但是您需要做一些古怪的事情。这背后的原因是源代码本身(查看FullCalendar 2.3.1的源代码),从5714行到5719行:

((!slotNormal || !minutes) ? // if irregular slot duration, or on the hour, then display the time
    '<span>' + // for matchCellWidths
        htmlEscape(slotDate.format(this.axisFormat)) +
    '</span>' :
    ''
Run Code Online (Sandbox Code Playgroud)

现在,$slotNormal在5701行中定义它,并且是:

var slotNormal = this.slotDuration.asMinutes() % 15 === 0;
Run Code Online (Sandbox Code Playgroud)

因此,如果您有30分钟的时段,则条件将为false,并且FullCalendar将不会显示该时间。这个问题在这个答案中有很深的介绍

补充说明:您使用的是FullCalendar v1.5.4,它确实很旧,建议您升级。如果要升级,请记住,FullCalendar现在依靠