全日历显示 "end date" 休息一天

Fullcalendar show "end date" one day off

完整日历节目"end date"休息一天
json是1月12日到16日,但是日历显示12日到15日 这是代码

var calCon = $('.cal');
calCon.fullCalendar({
    prev: 'left-single-arrow',
    firstDay: 1,
    weekends:true,
    weekNumbers:true,
    ignoreTimezone:false,
    allDayDefault:true,
    weekNumberCalculation:"ISO",
    defaultView:"basicWeek",
    timeFormat: 'H(:mm)',
    events: {
        url: "/calendarjson.xsp",
        cache: false
    }
})

这里是 json

[{"color":"#3a87ad","id":"123","allday":"1","url":"/...","end":"2015-01-16T10:00:00.0+0100","start":"2015-01-12T09:00:00.0+0100","title":"Thomas Adrian"}]

我正在使用 allDayDefault,因为时间并不重要。
我做错了什么?

我正在使用最新的 fullcalender 2.2.5
我试过更改时间,但还是一样

FullCalendar.js 使用独家结束时刻。文档说它 here。这意味着事件的结束时刻不属于从开始到结束的时间间隔,而是标记该时间间隔之后的时间点。

此处的重点是您将 allDay 的默认值设置为 true。您使用 2015-01-16T10:00:00.0+0100 作为事件的端点。但是 allDay 事件不会在 fullCalendar 内部保留时间信息。它剥离时间,只保留日期。您使用 2015-01-16T10:00:00.0+0100 作为端点。时间被剥离并且 end 被排除在外,这导致 2015-01-15T23:59:59.0+0100,您在 fullCalendar 中看到的结果是什么。您应该使用 2015-01-17T00:00:00.0+0100 作为 allDay 活动的结束,以使其跨越到 1 月 16 日 23:59:59。

在 CS 文件中: //HolidayList 是 class,具有属性 ID、描述、开始和结束

            SqlDataReader reader = SqlHelper.ExecuteReader(ConnStr, CommandType.StoredProcedure, "NameOfStoredProcedure");
            if (reader.HasRows)
            {
                Holiday_List itemObj = null;
                DateTime start, end;
                while (reader.Read())
                {
                    itemObj = new Holiday_List();
                    itemObj.holiday_Id = Convert.ToInt16(reader["holidayID"]);
                    itemObj.description = reader["description1"].ToString();
                    if (reader["date1"] != DBNull.Value)
                    {
                        date = Convert.ToDateTime(reader["date1"]);
                        start = date.AddDays(1);
                        itemObj.date1 = start;
                    }
                    result.Add(itemObj);
                }
            }
            return result;

在 CSHTML 中:

    $.ajax({
        type: "POST",
        url: '@Url.Action("ActionMethodName", "Controller")',
        contentType: false,
        processData: false,
        success: function (result) {

            if (result != null) {
                $.each(result, function (index, optiondata) {
                    alert(optiondata.date1 + '   ' + optiondata.enddate)
                    holidayList.push({
                        "title": optiondata.description,
                        "start": optiondata.startdate,
                    });
                });
                if (holidayList.length > 0) {
                    $('#calendar').fullCalendar({
                        header: {
                            left: 'prev,next today',
                            center: 'title',
                            right: 'month,basicWeek'
                        },
                        navLinks: true, // can click day/week names to navigate views
                        editable: true,
                        eventLimit: true, // allow "more" link when too many events                            
                        events: holidayList,
                        displayEventTime: false
                    });
                }
            }
        }
    });