<table class="col-lg-5 timetable">
<caption>Для Ⅱ-Ⅳ курсов</caption>
<caption>Четверг</caption>
<tr><th>Пара</th><th>Время</th><th>Перемена</th></tr>
<tr><td class="activeOne">1</td><td>8:30 - 10:00<div class="TimeProg"></div></td><td>10 минут</td></tr>
<tr><td>2</td><td>10:10 - 11:40</td><td>30 минут</td></tr>
<tr><td>3</td><td>12:10 - 13:40</td><td>10 минут</td></tr>
<tr><td>4</td><td>13:50 - 15:20</td><td>10 минут</td></tr>
<tr><td>5</td><td>15:30 - 17:00</td><td>10 минут</td></tr>
<tr><td>6</td><td>17:10 - 18:40</td><td></td></tr>
</table>
.timetable {
text-align: center;
}
.timetable tbody tr:nth-child(even) {
background-color: #e6e6e6;
}
.timetable th {
border: 1px solid #000;
}
.timetable td {
border: 1px solid #000;
}
.timetable caption {
caption-side: top;
text-align: center;
color: #444;
padding: 3px 0 10px 0;
}
.UnActive {
background-color: unset !important;
}
.activeOne{
background-color: #ff8200;
}
.TimeProg {
background-color: #ff8200;
width: 100%;
height: 6px;
}
const range = [Date.now(), Date.now() + 3600 + 12]; // типичный интервал
В-третьих, имея интервалы и обработчик, дело остается за малым. Каждый тик таймера проверяй, не входит ли текущее Date.now() в какой-либо из интервалов. Если входил, обновляй нужные данные, как-то: вешай нужный класс, рассчитывай процент "заполненности" интервала.