Fullcalendar显示“结束日期”一天休息 json是12月1日至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
我试图改变时间,但它仍然是相同的
答案 0 :(得分:8)
FullCalendar.js使用独占结束时刻。文档说它here。这意味着事件的结束时刻不属于从开始到结束的时间间隔,而是标记该时间间隔之后的时间点。
这里重点是你将allDay的默认值设置为true。您使用2015-01-16T10:00:00.0+0100
作为事件的端点。但是allDay事件不会在fullCalendar内部保留时间信息。它剥离了时间,只保留日期。您使用2015-01-16T10:00:00.0+0100
作为端点。时间被剥离并且结束是独占的,这导致2015-01-15T23:59:59.0+0100
,您在fullCalendar中看到的结果是什么。你应该使用2015-01-17T00:00:00.0+0100
作为你的allDay事件的结束,让它延伸到1月16日23:59:59。
答案 1 :(得分:0)
在CS文件中: // HolidayList是具有属性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
});
}
}
}
});