我使用的本版为v4+,不同版本的api可能不同,查阅时应注意版本
FullCalendar从数据库中读取结束日期 ‘end’到了页面渲染的时候只能显示到数据库日期的前一天。看官网应该是最后一天不计。
我的解决方法是在js写一个天数加一的方法。
- FullCalendar读取返回的json
events: function (fetchInfo, successCallback, failureCallback) {
var events = [];
$.ajax({
type: "POST",
url: "/getcalendar",
// data: JSON.stringify(data),
dataType: "json",
success: function (result) {
console.log(result);
for(var i=0;i<result.length;i++){
// console.log(formatDate(result[i].end));
events.push({
id:result[i].id,
title: result[i].title,
start: result[i].start,
end:formatDate(result[i].end),
color:result[i].color
})
}
successCallback(events);
}
});
},
- 返回的格式
[{"color":"#6c757d","start":"2020-05-05","end":1588780800000,"id":1,"title":"新手机限购日"}]
end返回的是时间戳,方便处理
- 日期+1方法‘formatDate’
function formatDate(timestamp) {
var correctend = new Date();
correctend.setTime(timestamp+24*60*60*1000);
// var end1 = correctend.getFullYear()+"-" + (correctend.getMonth()+1) + "-" + correctend.getDate();
var year1 = correctend.getFullYear();
var month1 = correctend.getMonth() + 1;
var day1 = correctend.getDate();
if (month1 < 10) {
month1 = "0" + month1;
}
if (day1 < 10) {
day1 = "0" + day1;}
return year1 + "-" + month1+ "-" + day1;
}
特别要注意的是:时间格式要‘2020-05-07’这样的,‘2020-5-7’不行