如何将第一次初始化完整的日历到特定的开始date?
当我调用显示日历的函数时,我想将初始月份设置为任意月份。
例如,用户在其他地方select最后一个6月(2011年6月)的date,我希望fullcalendar在(2010年4月)之前显示4月的月份显示。 是的,这只是一个案件,没有道理;-))
我之前试图调用“gotodate”,然后再调用显示函数,但这似乎不起作用
$('#calendar').fullCalendar( 'gotoDate', currentdate); $('#calendar').fullCalendar({ header: {left: 'prevYear,prev,today,next,nextYear', center: 'title', right: 'month,basicWeek,basicDay' etc...}
最后有人能提供一个例子如何正确地做到这一点?
你有它倒退。 首先显示日历,然后调用gotoDate
。
$('#calendar').fullCalendar({ // Options }); $('#calendar').fullCalendar('gotoDate', currentDate);
初始化时,您应该使用选项“年”,“月”和“date”来指定fullcalendar使用的初始date值:
$('#calendar').fullCalendar({ year: 2012, month: 4, date: 25 }); // This will initialize for May 25th, 2012.
请参阅fullcalendar.js
文件中的函数setYMD(date,y,m,d)
注意使用了JavaScript setMonth,setDate和setFullYear函数,所以你的月份值需要基于0(Jan是0)。
根据machineAddict的评论,从版本2和更高版本开始, year, month and day
被replace为defaultDate
,它是一个Moment ,支持ISO 8601
datestring或Unix Epoch等构造函数。
所以,例如用给定的date来初始化日历:
$('#calendar').fullCalendar({ defaultDate: moment('2014-09-01'), ... });
我在viewRender
callback中调用gotoDate
运气要viewRender
:
$('#calendar').fullCalendar({ firstDay: 0, defaultView: 'basicWeek', header: { left: '', center: 'basicDay,basicWeek,month', right: 'today prev,next' }, viewRender: function(view, element) { $('#calendar').fullCalendar( 'gotoDate', 2014, 4, 24 ); } });
在callback之外调用gotoDate
由于竞争条件而没有预期的结果。
在2.1.1版本中这个工作:
$('#calendar').fullCalendar({ // your calendar settings... }); $('#calendar').fullCalendar('gotoDate', '2014-05-01');
关于瞬间时间/date格式的文档: http : //fullcalendar.io/docs/utilities/Moment/有关第2版升级的文档: https : //github.com/arshaw/fullcalendar/wiki/Upgrading-to-v2
你可以传递一个Date
对象:
对于当前date:
$('#calendar').fullCalendar({ defaultDate: new Date() });
具体date“2016-05-20”:
$('#calendar').fullCalendar({ defaultDate: new Date(2016, 4, 20) });
如果您不想两次加载日历,并且没有实现defaultDate的版本,请执行以下操作:
更改以下方法:
function Calendar(element, options, eventSources) { ... var date = new Date(); ... }
至:
function Calendar(element, options, eventSources) { ... var date = options.defaultDate ? options.defaultDate : new Date(); ... }