Похоже, проблема в том, что вы используете «дневное» представление, а затем корректируете его, устанавливая «maxTime» выше, чем полночь. Возможно, где-то в коде fullCalendar он сталкивается с жестким пределом полуночи, когда он не добавляет этот класс в поле за пределами этого. Я не изучал код, но это все, что я могу предположить, основываясь на наблюдаемом поведении.
Правильный способ определения пользовательского периода времени, подобного этому, в вашем представлении - это использовать visibleRange и при желании объединить его с настраиваемым представлением (особенно если вы хотите использовать другое просмотров в вашем календаре).
Вот пример определения видимого диапазона, который будет делать то, что вам нужно. Временная шкала всегда будет отображаться с 8 вечера текущего выбранного дня до 8 вечера следующего дня. Вы не должны указывать какие-либо другие параметры, такие как dayCount или minTime / maxTime, в сочетании с этим, поскольку они будут искажать окончательное отображение:
visibleRange: function(currentDate) {
return {
start: currentDate.clone().startOf("day").add('20', 'h'),
end: currentDate.clone().startOf("day").add('1', 'd').add('20', 'h')
}
}
Вот полная рабочая демонстрация, использующая это определение диапазона как часть настраиваемого представления временной шкалы, основанного на ранее опубликованной скрипте: https://jsfiddle.net/Lzuv5kog/1/