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

时间:2015-05-25 18:38:56

标签: javascript jquery fullcalendar

我尝试了这种实现Full Calendar Implementation

    $("#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"
            }
        }
    });

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

所以全天列应该是这样的:

  

早上6:30 am 7:30 am 8:30 am。 。 。晚上11:30

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

如果需要任何其他信息,请告知我们。

由于 Screenshot from @lucasnadalutti fiddle

2 个答案:

答案 0 :(得分:4)

您的问题是您选择的地方。它应该是

$("#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"
});

关于06:3007:30等的显示,在垂直轴上,您需要设置slotDuration: "06:30:01"。看看this 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>' :
    ''

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

var slotNormal = this.slotDuration.asMinutes() % 15 === 0;

因此,如果您有30分钟的老虎机时间,则条件将为false,FullCalendar将不显示时间。这个主题在this answer中有详细介绍。

另外一句话:您使用的是FullCalendar v1.5.4,它真的很旧,我建议您升级。如果您升级,请记住FullCalendar现在依赖于

答案 1 :(得分:3)

只需提取您放在views内的选项。

这是您的modified working fiddle