>我有一个由年份组成的选择,以便完整日历可以转到某个年份和一个按钮来执行此操作。这是我的代码:
$('#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);
})
这段代码有效,但我在控制台中有一个错误。我已经读过了,但我似乎找不到答案。
错误消息指出您传递到完整日历的日期采用将来不受支持的格式。Full Calendar正在使用一个名为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 格式的日期。
这将防止错误。