Львиная часть времени ушла на работу с датами и их преобразование. До вчерашнего дня, с ними не работал напрямую.
Поэтому не успел сделать полную доступность интерфейсов. Только базовый вариант
Я бы лучше использовал moment.js, но в ТЗ указано чистый JS. Думаю изобрёл свой велосипед
Не успел сделать проверку на влияние текущего времни
Идея с loop для рендера времени, на мой взгляд не самая удачная.
При загрузке страницы сделать запрос, отрендерить два селекта:
1. первый - дни, начинающиеся с двух заголовков - "Сегодня", "Завтра" и продолжающийся по числам. например, сегодня 29 июля, пятница. в первом селекте должны быть значения ["Сегодня", "Завтра", 31.07, 1.08, 2.08, ..., 12.08] (14 дней вперед).
2. второй - значения от поля start текущего дня, до значения end текущего дня c интервалом 15 минут. например - сегодня 31 июля, суббота, - значит, должно быть [10:00, 10:15, 10:30, 10:45, 11:00, ..., 20:30]
3. при смене дня второй селект должен пересчитываться
4. селекты должны быть кастомными - не нативный селект браузера, а отрисованные js
будет плюсом - на значения второго селекта влияет текущее время при рендере (если сейчас 10:15-10-29, то значения во втором селекте начинаются с 10:30, и т.д. можно не брать в расчет выход текущего времени за пределы времени (если сейчас час ночи, то показывать как обычно)
условия - es6, нативный js, модульная система, функциональный стиль