Ответ 1
У вас есть это в обратном направлении. Сначала отобразите календарь, а затем вызовите gotoDate
.
$('#calendar').fullCalendar({
// Options
});
$('#calendar').fullCalendar('gotoDate', currentDate);
Я хотел бы установить начальный месяц в произвольный месяц, когда я вызываю функцию для отображения календаря.
Скажем, например, пользователь выбирает дату последнего июня (июнь 2011 г.) где-то в другом месте, и я хочу, чтобы fullcalendar показывался с показанием месяца апреля до (апрель 2010 г.). И да, это просто сделать случай, чтобы не иметь смысла;-))
Я попытался вызвать '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);
При инициализации вы должны использовать опции "год", "месяц" и "дата", чтобы указать начальное значение даты, используемое fullcalendar:
$('#calendar').fullCalendar({
year: 2012,
month: 4,
date: 25
}); // This will initialize for May 25th, 2012.
См. функцию setYMD(date,y,m,d)
в файле fullcalendar.js
; обратите внимание, что используются функции setMonth JavaScript, setDate и setFullYear, поэтому ваше значение месяца должно быть 0 (Jan равно 0).
В соответствии с комментарием machineAddict, начиная с версии 2 и более поздних версий, year, month and day
были заменены на defaultDate
, который является Moment, поддерживающие конструкторы, такие как строка даты ISO 8601
или эпоха Unix.
Так, например, для инициализации календаря с заданной датой:
$('#calendar').fullCalendar({
defaultDate: moment('2014-09-01'),
...
});
Мне повезло с вызовом 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 );
}
});
Вызов gotoDate
за пределами обратного вызова не имел ожидаемых результатов из-за состояния гонки.
В версии 2.1.1 это работает:
$('#calendar').fullCalendar({
// your calendar settings...
});
$('#calendar').fullCalendar('gotoDate', '2014-05-01');
Документация о формате момента времени/даты: http://fullcalendar.io/docs/utilities/Moment/ Документация об обновлениях в версии 2: https://github.com/arshaw/fullcalendar/wiki/Upgrading-to-v2
Вы можете просто передать объект Date
:
Для текущей даты:
$('#calendar').fullCalendar({
defaultDate: new 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();
...
}