Я знаю, что этот вопрос задают много раз, но я не смог найти решение для этого, и я новичок в jquery Я создаю календарь, чтобы отображать смены за несколько дней для сотрудника. Я жестко запрограммировал значение title, start и end, и этот код работает нормально. Я буду получать значения заголовка, начала и конца из задней части. Я получу несколько значений. Поэтому мне нужно перебрать значения в цикле и передать все значения в объекте событий.
Я буду получать такие значения, как
[morningShift,10/09/2018,20/09/2018],[eveningShift,21/09/2018,23/09/2018]
Я должен передавать значения в пределах даты начала и даты окончания заголовка динамически, и они должны выглядеть так
{
title: 'morningShift',
start: new Date('10/09/2018'),
end: new Date('20/09/2018'),
className: 'bg-primary'
},
{
title: 'eveningShift',
start: new Date('21/09/2018'),
end: new Date('23/09/2018'),
className: 'bg-primary'
}
var calendar = $('#calendar').fullCalendar({
slotDuration: '00:15:00', /* If we want to split day time each 15minutes */
minTime: '00:00:00', /* calendar start Timing */
maxTime: '24:00:00', /* calendar end Timing */
defaultView: 'month',
handleWindowResize: true,
height: $(window).height() - 200,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
// right: ''
},
events: [
{
title: 'Morning Shift',
start: new Date('10/25/2018'),
end: new Date('11/05/2018'),
className: 'bg-primary'
},
],
editable: true,
droppable: true, // this allows things to be dropped onto the calendar !!!
eventLimit: true, // allow "more" link when too many events
selectable: true,
select: function (start, end, allDay) {
$modal.modal({
backdrop: 'static'
});
calendar.fullCalendar('unselect');
}
});



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


новая дата (мм / дд / гггг) принимает значение в этом формате.
let apiData = [["morningShift","5/09/2018","10/09/2018"],['eveningShift','1/09/2018','10/09/2018']]
events = apiData.map(([title, start, end])=>({
title,
start: new Date(start),
end: new Date(end),
className: 'bg-primary'})
)
console.info(events)новая дата (мм / дд / гггг) принимает значение в этом формате. Когда вы указываете новую дату ('20.09.2018 '), это недопустимая дата, поскольку 20-й месяц не существует
@Subasri, я не вижу где меняются значения дат. Что касается вашей ошибки, я считаю, что вы ее получаете, потому что используете предоставленный код внутри определения fullCalendar. Вы должны создать массив events, используя предоставленный код до вашей строки var calendar..., а затем в определении fullCalendar у вас будет events: events.
Дата начала работает отлично, но дата окончания считается (дата окончания-1), даже когда я запускаю фрагмент кода. Это выглядит так
браузер предполагает, что вы указываете дату в часовом поясе GMT. Таким образом, он автоматически преобразует данную дату в вашу местную дату.
пожалуйста, проверьте этот ответ: stackoverflow.com/questions/28634734/…
Спасибо. Но я получил ошибку под названием «Недопустимый инициализатор сокращенного свойства» для apiData.map (([title, start, end]) => эта строка в js, запустите фрагмент кода и посмотрите дату начала и окончания. дата изменения значения