基本周视图的完整日历结束日期错误

Full calendar wrong end date for basicWeek view

本文关键字:日历 结束 错误 日期 周视图 视图      更新时间:2023-09-26

查看以下完整日历示例:

http://fullcalendar.io/views/basicWeek/

如果在控制台中运行:

$('#calendar').fullCalendar('getView').start.format('YYYY-MM-DD');

您得到的2014-06-08适用于本周2014-06-08->2014-06-14(从周日到周六),但如果您运行:

$('#calendar').fullCalendar('getView').end.format('YYYY-MM-DD');

你会得到2014-06-15,这是下星期的星期天。

我认为这有点错误,因为如果我有一个显示一周的日历,我希望结束日是该周的结束日,而不是下一周的下一个开始日。

这是预期的行为吗?我在文档中没有找到任何参考资料。

无论如何,如果这是预期的默认行为,它能以某种方式被覆盖吗?如果我初始化我的自定义week完整日历:

$('#myWeekCalendar').fullCalendar({
    //...
    ,defaultView: 'basicWeek'
    ,events: {
        url: 'some_url.php',
        type: 'POST',
        data: function() {
            return {
                dynamicParam: fn(), // A param returned from a function
                staticParam: 'A static AJAX param'
                // Can't set start and end here, they are overridden by fullcalendar's ones
            }
        }
    }
    //...
});

这将向脚本some_url.php发送一个带有以下POST数据的请求:

dynamicParam: // The result of function fn() will go here
staticParam: 'A static AJAX param'
start: // Full calendar will pass $('#myWeekCalendar').fullCalendar('getView').start.format('YYYY-MM-DD');
end: // Full calendar will pass $('#myWeekCalendar').fullCalendar('getView').end.format('YYYY-MM-DD');

有没有办法通过本周正确的结束日?

你是对的,它将给出2014-06-15,也就是下一周的周日。

但如果您将结束日期打印为全文

$('#calendar').fullCalendar('getView').end.format('YYYY-MM-DD HH:mm:ss')

你会得到2014-06-15 00:00:00表示2014-06-14午夜(或者你可以说2014-06-14 23:59:59)。

解决方案是要么你通过

start ($('#calendar').fullCalendar('getView').start.format('YYYY-MM-DD HH:mm:ss'))

end ($('#calendar').fullCalendar('getView').end.format('YYYY-MM-DD HH:mm:ss')) 

日期和时间,并检查您的数据库中的日期时间,否则您必须从结束日期中扣除1天。像

var weekEndDate = $('#calendar').fullCalendar('getView').end
weekEndDate.subtract(1,'days');