这(我希望)是一个基本问题。我没有在fullcalendar中看到日历事件,我相信问题是我尝试用于开始/结束事件的日期格式。我试图通过加载JSON事件来设置基本日历。这是我的JSON输出(修剪为一个事件,以免占用太多空间):
[{"id":"89","title":"A Title","start":"June 2nd 2015","end":"August 14th 2015"}]
我的javascript看起来像这样:
$(document).ready(function() {
$('#calendar').fullCalendar({
editable: false,
events: "data.php"
});
});
再次,非常基本。我肯定地知道事件没有出现的问题是由于我使用的日期格式,但我不确定如何告诉fullCalendar使用MMMM Do YYYY
格式的开始/结束事件与moment.js。有没有人就如何实现这一点提出建议?
编辑:
试图在这些方面添加一些东西......但仍然没有运气:
var start = moment(event.start).format("MMMM Do YYYY");
var end = moment(event.end).format("MMMM Do YYYY");
答案 0 :(得分:1)
我不确定这是否会被视为答案或更多的解决方法,但无论如何我都会将其作为答案发布。
我最后只是转换了json输出中的日期格式,正如Bruno在上面的评论中所建议的那样。希望我能用javascripting想出来,但经过几个小时的尝试,我永远无法在日历中显示这些事件。
我会继续为那些好奇的人发布我的php源代码(只显示开始日期):
$start = $row['startdate'];
$start_obj = new \DateTime($start);
$events['start'] = $start_obj->format('Y-m-d');
答案 1 :(得分:0)
我通过为事件定义一个函数来完成类似的事情,使用我想要的格式遍历为moment.js
字段创建start
对象的数据。 docs具有如何实现此目的的基础知识。
编辑:我复制了docs中的示例,并使用moment.js
修改了开始时间。
$('#calendar').fullCalendar({
events: function(start, end, timezone, callback) {
$.ajax({
url: 'myxmlfeed.php',
dataType: 'xml',
data: {
// our hypothetical feed requires UNIX timestamps
start: start.unix(),
end: end.unix()
},
success: function(doc) {
var events = [];
$(doc).find('event').each(function() {
events.push({
title: $(this).attr('title'),
start: moment($(this).attr('start'), 'MMMM Do YYYY') // will be parsed
});
});
callback(events);
}
});
}
});