У меня такой код
getDate() {
let calendar = new calendarDate(this.year, this.month);
let dataCalendar = calendar.getCalendarWeek();//Получаем дни в неделях
let dateMonthCalendar = null;
let arrRes = [];
//Выборка по имеющим событиям в расписании
for (let i = 0; i < this.shedules.length; i++) {
let shedule = this.shedules[i];
let dateStart = moment(shedule.start);
let dateEnd = moment(shedule.end);
let date = dateStart.date();
// Сверяем событие с датой в неделях
for (let n = 0; n < dataCalendar.length; n++) {
for (let key in dataCalendar[n]) {
arrRes[dateStart.date()] = arrRes[dateStart.date()] ? arrRes[dateStart.date()] : [];
//Если дата событие и дата месяца совпали, то мы добавляем в массив
if(dataCalendar[n][key].date === parseInt(dateStart.date())) {
dateMonthCalendar = dataCalendar[n][parseInt(key)];
arrRes[dateStart.date()].push(`${dateStart.format("HH:mm")}-${dateEnd.format("HH-mm")}`);
}
}
}
dateMonthCalendar.shedule = arrRes[date];//Перемещаем весь массив дня в определенный день\
}
console.log(dataCalendar);
return dataCalendar;
}
Массив событии идет
[
{
"title": "test",
"start": "2018-12-10 08:00:00",
"end": "2018-12-10 16:00:00"
},
{
"title": "another test",
"start": "2018-12-10 16:00:00",
"end": "2018-12-10 22:00:00"
},
{
"title": "another test",
"start": "2018-12-11 16:00:00",
"end": "2018-12-11 22:00:00"
}
]
Массив месяца приходит
[
1: {1: {date: 1, today: true}, 2: {date: 2, today: false}, 3: {date: 3, today: false}, 4: {date: 4, today: false}, 5: {date: 5, today: false}, 6: {date: 6, today: false},7: {date: 7, today: false}},
2: {8: {date: 8, today: false}, ....},
....
]
Весь пример можно посмотреть тут
https://codesandbox.io/s/pyvjxxnnvj в файле /src/views/Shedule.vue