Работа со временем в JavaScript (сложить строки до 15минут)? всем здрасти!
с утра туплю чуток, помогите кто уже проснулся:
у меня есть n-количество строк со временем, выглядфт вот так:
26.4.2017 09:38:21 - 0:00:06 h
26.4.2017 09:37:59 - 0:00:14 h
26.4.2017 09:37:40 - 0:00:13 h...
выдаю всё это вот этим кодом: t += "" + start.getDate() + "." + (start.getMonth() + 1) + "." + start.getFullYear() + " " + addZero(start.getHours()) + ":" + addZero(start.getMinutes()) + ":" + addZero(start.getSeconds()) + "";
t += " - " + dauerString + "";
помогите мне сложить его до 15ти минут, как наберётся 15ть, выдать 26.4.2017 09:35:00- 26.4.2017 09:50:00 - 0:07:12 h и начать следующую строку 26.4.2017 09:50:00- 26.4.2017 10:05:00 - 0:02:53 h
Спасибо заранее всем

21 Авг 2019 в 06:29
211 +1
0
Ответы
1

Для решения данной задачи вам необходимо выполнить следующие шаги:

Создать переменные для хранения суммарного времени и времени начала и конца интервала.В цикле обрабатывать каждую строку со временем.Прибавлять к суммарному времени время интервала в формате часы:минуты:секунды.Если суммарное время превышает 15 минут, сбрасывать его до 0, выводить строку с интервалом времени и начинать новый интервал.

Пример кода:

let totalSeconds = 0;
let startTime = null;
let endTime = null;
// Ваш цикл обработки строк со временем
for (let i = 0; i < ваше количество строк; i++) {
let timeArray = ваше время в формате "часы:минуты:секунды".split(":");
let seconds = Number(timeArray[0]) * 3600 + Number(timeArray[1]) * 60 + Number(timeArray[2]);
totalSeconds += seconds;
if (totalSeconds >= 900) {
totalSeconds = seconds;
if (endTime) {
let endTimeString = formatTime(endTime);
t += "<td>" + startTime.getDate() + "." + (startTime.getMonth() + 1) + "." + startTime.getFullYear() + " " + startTimeString + " - " + endTimeString + " - " + durationString + "</td>";
}
startTime = new Date(start.getTime());
startTime.setSeconds(startTime.getSeconds() - seconds);
endTime = new Date(start.getTime());
} else {
endTime = new Date(start.getTime() + totalSeconds*1000);
}
}
function formatTime(time) {
return addZero(time.getHours()) + ":" + addZero(time.getMinutes()) + ":" + addZero(time.getSeconds());
}
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}

Обратите внимание, что необходимо заменить "ваше количество строк" на реальное количество строк со временем и реализовать функцию "formatTime", которая будет форматировать время в заданном формате. В этом коде предполагается, что переменная "t" используется для хранения результатов.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир