Задать вопрос
@fasker
Junior Front-end Developer

Как разделить начальное и конечное время на заданный интервал?

Есть 3 input. Первый принимает время начала работы, второй время окончание рабочего дня, в третий я ввожу на какой интервал я хочу разделить данный промежуток времени. Например, мой рабочий день начинается в 10.00 и заканчивается в 18.00, я могу принимать пациентов каждые 30 минут. Нужно, чтобы:
10.00-10.30
10.30-11.00
.
.
.
17.00-17.30
17.30-18.00
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
Seasle
@Seasle Куратор тега React
const start = 11 * 60 * 60;
const end = 18 * 60 * 60;
const step = 30 * 60;
const count = Math.floor((end - start) / step);
const result: string[] = [];
const date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
date.setMilliseconds(0);

const format = (date: Date) => date.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' });

for (let index = 0; index < count; index++) {
  const from = new Date(date.getTime() + (start + step * index) * 1000);
  const to = new Date(date.getTime() + (start + step * (index + 1)) * 1000);
  
  result.push(`${format(from)} - ${format(to)}`);
}

console.log(result);
/* [ '11:00 - 11:30', '11:30 - 12:00', '12:00 - 12:30', '12:30 - 13:00', '13:00 - 13:30',
     '13:30 - 14:00', '14:00 - 14:30', '14:30 - 15:00', '15:00 - 15:30', '15:30 - 16:00',
     '16:00 - 16:30', '16:30 - 17:00', '17:00 - 17:30', '17:30 - 18:00' ] */
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы