2016-08-01 1 views
0

Я использую полный календарь. И я отобразил некоторое содержимое в календаре.Показать данные на основе выбранной даты начала и окончания в fullcalendar

1) По умолчанию он отображает данные во всем поле даты.

2) У меня есть дата начала и дата окончания календаря сверху. Я хочу отображать данные на основе выбранной даты начала и окончания. Например, если я выбираю startdate 01/08/2016 и enddate 14/08/2016.

Я хочу отображать данные только на начальную и конечную даты.

jsfiddle

$('#calendar').fullCalendar({ 
 
\t header: { 
 
\t \t left: 'prev,next today', 
 
\t \t center: 'title', 
 
\t \t right: 'month,agendaWeek,agendaDay' 
 
\t }, 
 
\t defaultDate: '2014-06-12', 
 
\t editable: true, 
 
}); 
 
$("td.fc-day.fc-widget-content").each(function(index) { 
 
    var random = Math.floor(Math.random()*100); 
 
    $(this).append("<span style='font-size: 30px;font-weight: 600;color: green;'>"+random+"%</span>"); 
 
});
body { 
 
\t margin-top: 40px; 
 
\t text-align: center; 
 
\t font-size: 13px; 
 
\t font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif; 
 
} 
 

 
#calendar { 
 
\t width: 900px; 
 
\t margin: 0 auto; 
 
}
Start Date :<input type="text" id="endDate" name="end_datum" class="input_text" value=""> 
 
End date :<input type="text" id="endDate" name="end_datum" class="input_text" value=""></br></br></br></br> 
 

 
<div id='calendar'></div>

+1

Как вы получаете события своего календаря? Если с помощью базы данных вы можете просто использовать ajax для отправки двух дат и построить запрос для получения и возврата событий между двумя датами. – Ryan89

+0

Я не использую события. Я прямо отображается в td-файле, например, $ ("td.fc-day.fc-widget-content"). Каждый (функция (индекс) { –

ответ

1

Так в моем примере я использую начало и конец как статической переменной вам нужно будет захватить вход от начала и конца, чтобы использовать его динамически. Поэтому назначьте даты начала и окончания, затем мы назначим date как текущие объекты значения атрибута date. Затем мы создадим момент с этой датой, называемый day, и используем оператор if, чтобы убедиться, что day больше start и менее end, и если он пройдет, то у вас есть код обработки. Вот работа JSFiddle.

$("td.fc-day.fc-widget-content").each(function(index) { 
    var start = moment('2014-06-04'); //start date from start date input 
    var end = moment('2014-06-18'); //end date from end date input 
    var random = Math.floor(Math.random()*100); 
    var date = $(this).data('date'); //get current date in loop 
    var day = moment(date); //create a moment 

    //if day is greater than start date and less than end date, display. 
    if(day > start && day < end) { 
     $(this).append("<span style='font-size: 30px;font-weight: 600;color: green;'>"+random+"%</span>"); 
    } 
}); 
+0

Большое вам спасибо @ Ryan89. –

+0

Мне нужна еще одна помощь. не используя функцию fullCalendar Events.Это возможно сделать то же самое, используя fullCalendar events insteat использования $ ("td.fc-day.fc-widget-content"). each (function() { –

+0

Да это возможно. ваши события взяты из базы данных, которую вы могли бы просто передать в своих датах с помощью ajax, чтобы построить запрос, чтобы возвращать только те события, или вы можете использовать [clientEvents] (http://fullcalendar.io/docs/event_data/clientEvents/) для доступа все ваши видимые события и работайте с ними оттуда. Если они из json-корма, вы можете работать с датами в javascript и momentjs. Я предлагаю вам прочитать все [fullcalendar docs] (http://fullcalendar.io/docs /) это поможет вам изучить все, с чем вы можете работать. – Ryan89

Смежные вопросы