我使用的是fullcalendarhttp://fullcalendar.io/。每当用户在我的日历中选择一个时间段时,我想获得日历中的所有事件,并将它们传输到视图中的隐藏字段中:
$('#calendar').fullCalendar({
});
我有一个select回调:
select: function(start, end, id, allDay) {
var eventData = {
start: start,
end: end,
unique_id: guid(),
block: true,
editable: true,
backgroundColor: "#469278"
};
$('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true
var all_events = $('#calendar').fullCalendar('clientEvents');
$.each(all_events, function(index, value) {
console.log(value.start["_d"]);
console.log(index);
var day = value.start["_d"].format("dddd");
var start_time = value.start["_d"].format("HH:mm");
var end_time = value.end["_d"].format("HH:mm");
var id = value.unique_id["_i"];
var slot = {
day: day,
start_time: start_time,
end_time: end_time,
id: id
};
array_all_events.push(slot);
$("#dispo_array").val(JSON.stringify(array_all_events));
});
$('#calendar').fullCalendar('unselect');
},
这里我说的是每次用户做一个选择动作,我应该得到所有事件对象:
var all_events = $('#calendar').fullCalendar('clientEvents');
然后迭代它们中的每一个,将它们转换为正确的格式并将它们发送到我的隐藏字段中。我不明白为什么这一行会出现错误:
var day = value.start["_d"].format("dddd");
Uncaught TypeError: value.start._d。格式不是函数
.format
方法依赖于moment库,因此您应该像下面这样使用它:
var day = moment(value.start["_d"]).format('dddd')
其他变量也一样