我有一个年份的选择,以便fullcalendar可以转到某一年和一个按钮来完成它。 这是我的代码:
$('#btnfilter').on('click', function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
eventLimit: true,
events: '../js/fullcalendar-2.6.0/events.json.php'
});
var year = $('#slctyear').val();
$('#calendar').fullCalendar('gotoDate', year);
})
此代码有效,但我在控制台中出错。我已经读过了,但我似乎无法找到答案。
答案 0 :(得分:1)
错误消息表示您传递给完整日历的日期采用的格式将无法获得支持。完整日历使用名为MomentJS的库来解析日期,MomentJS正在改变它处理日期的方式。
简而言之,那个长Github线程说你需要将格式正确的日期传递给完整日历。
您似乎正在将一年(如2016
)传递给完整日历,如下所示:
$('#calendar').fullCalendar('gotoDate', year);
问题是year
不是有效的ISO日期。要使其有效并防止出错,您需要在将日期传递到完整日历之前格式化日期。
要正确格式化您需要使用Javascript Date()
的日期。在您的情况下,您想要:
var year = new Date($('#slctyear').val(), 0 , 1);
$('#calendar').fullCalendar('gotoDate', year);
Date($('#slctyear').val(), 0 , 1)
部分将在1月1日的午夜创建一个ISO格式的日期,无论表格输入包含哪一年。
这样可以防止出错。