如何将第一次初始化完整的日历到特定的开始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 8601datestring或Unix Epoch等构造函数。

所以,例如用给定的date来初始化日历:

 $('#calendar').fullCalendar({ defaultDate: moment('2014-09-01'), ... }); 

我在viewRendercallback中调用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(); ... }