Подтвердить что ты не робот

Как установить полный календарь на конкретную дату начала, когда он был инициализирован в первый раз?

Я хотел бы установить начальный месяц в произвольный месяц, когда я вызываю функцию для отображения календаря.

Скажем, например, пользователь выбирает дату последнего июня (июнь 2011 г.) где-то в другом месте, и я хочу, чтобы fullcalendar показывался с показанием месяца апреля до (апрель 2010 г.). И да, это просто сделать случай, чтобы не иметь смысла;-))

Я попытался вызвать 'gotodate', прежде чем затем вызвать функцию отображения, но это не работает

$('#calendar').fullCalendar( 'gotoDate', currentdate);
$('#calendar').fullCalendar({
    header: {left: 'prevYear,prev,today,next,nextYear',
         center: 'title', right: 'month,basicWeek,basicDay' etc...}

Может ли кто-нибудь в конце концов привести пример, как это сделать правильно?

4b9b3361

Ответ 1

У вас есть это в обратном направлении. Сначала отобразите календарь, а затем вызовите gotoDate.

$('#calendar').fullCalendar({
  // Options
});

$('#calendar').fullCalendar('gotoDate', currentDate);

Ответ 2

При инициализации вы должны использовать опции "год", "месяц" и "дата", чтобы указать начальное значение даты, используемое 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).

Ответ 3

В соответствии с комментарием machineAddict, начиная с версии 2 и более поздних версий, year, month and day были заменены на defaultDate, который является Moment, поддерживающие конструкторы, такие как строка даты ISO 8601 или эпоха Unix.

Так, например, для инициализации календаря с заданной датой:

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

Ответ 4

Мне повезло с вызовом 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 за пределами обратного вызова не имел ожидаемых результатов из-за состояния гонки.

Ответ 6

Вы можете просто передать объект Date:
Для текущей даты:

$('#calendar').fullCalendar({
    defaultDate: new Date()
});

Для конкретной даты '2016-05-20':

$('#calendar').fullCalendar({
    defaultDate: new Date(2016, 4, 20)
});

Ответ 7

Если вы не хотите дважды загружать календарь и у вас нет версии, в которой используется функция defaultDate, выполните следующие действия:

Измените следующий метод:

function Calendar(element, options, eventSources) { ... var date = new Date(); ... }

в

function Calendar(element, options, eventSources) { ... var date = options.defaultDate ? options.defaultDate : new Date(); ... }