Работа со временем в 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 Спасибо заранее всем
Для решения данной задачи вам необходимо выполнить следующие шаги:
Создать переменные для хранения суммарного времени и времени начала и конца интервала.В цикле обрабатывать каждую строку со временем.Прибавлять к суммарному времени время интервала в формате часы:минуты:секунды.Если суммарное время превышает 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" используется для хранения результатов.
Для решения данной задачи вам необходимо выполнить следующие шаги:
Создать переменные для хранения суммарного времени и времени начала и конца интервала.В цикле обрабатывать каждую строку со временем.Прибавлять к суммарному времени время интервала в формате часы:минуты:секунды.Если суммарное время превышает 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" используется для хранения результатов.