fullcalendar - end/start 事件的日期格式
fullcalendar - date format for end/start events
这(我希望)是一个基本问题。我没有在 fullcalendar 中看到日历事件,我认为问题是我尝试用于 start/end 事件的日期格式。我正在尝试通过加载 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 对 start/end 事件使用 MMMM Do YYYY
格式 moment.js。有人对如何实现这一点有建议吗?
编辑:
尝试按照这些思路添加一些内容...但仍然没有成功:
var start = moment(event.start).format("MMMM Do YYYY");
var end = moment(event.end).format("MMMM Do YYYY");
我通过为事件定义一个函数来完成类似的事情,遍历数据,使用我想要的格式为 start
字段创建 moment.js
对象。 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);
}
});
}
});
我不确定这是否会被视为一个答案或更多的解决方法,但无论如何我都会 post 它作为一个答案。
我最终只是转换了 json 输出中的日期格式,正如布鲁诺在上述评论中所建议的那样。有点希望我能用 javascripting 解决这个问题,但经过数小时的尝试,我永远无法让事件显示在日历中。
我会继续 post 我的 php 那些好奇的来源(只显示开始日期):
$start = $row['startdate'];
$start_obj = new \DateTime($start);
$events['start'] = $start_obj->format('Y-m-d');
这(我希望)是一个基本问题。我没有在 fullcalendar 中看到日历事件,我认为问题是我尝试用于 start/end 事件的日期格式。我正在尝试通过加载 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 对 start/end 事件使用 MMMM Do YYYY
格式 moment.js。有人对如何实现这一点有建议吗?
编辑:
尝试按照这些思路添加一些内容...但仍然没有成功:
var start = moment(event.start).format("MMMM Do YYYY");
var end = moment(event.end).format("MMMM Do YYYY");
我通过为事件定义一个函数来完成类似的事情,遍历数据,使用我想要的格式为 start
字段创建 moment.js
对象。 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);
}
});
}
});
我不确定这是否会被视为一个答案或更多的解决方法,但无论如何我都会 post 它作为一个答案。
我最终只是转换了 json 输出中的日期格式,正如布鲁诺在上述评论中所建议的那样。有点希望我能用 javascripting 解决这个问题,但经过数小时的尝试,我永远无法让事件显示在日历中。
我会继续 post 我的 php 那些好奇的来源(只显示开始日期):
$start = $row['startdate'];
$start_obj = new \DateTime($start);
$events['start'] = $start_obj->format('Y-m-d');