Как рассчитать разницу дат/времени в JavaScript?
Мне приходит две строки end_time:"2021-04-19 12:20:38", start_time:"2021-04-19 12:07:12". Надо получить их разницу в таком же формате.
Ответы (2 шт):
Автор решения: entithat
→ Ссылка
const data = {
end_time: "2021-04-19 12:20:38",
start_time: "2021-04-19 12:07:12"
};
function getDateDiff(startDate, endDate) {
function rnd(n, p = 2) {
return String(Math.floor(n)).padStart(p, '0');
};
const diff = (new Date(endDate) - new Date(startDate)) / 1000;
const sm = {
years: rnd(diff / 3600 / 61320, 4),
months: rnd(diff / 604800),
days: rnd(diff / 86400),
hours: rnd(diff / 3600),
mins: rnd(diff / 60),
secs: diff % 60
};
return `${sm.years}-${sm.months}-${sm.days} ${sm.hours}:${sm.mins}:${sm.secs}`;
}
console.log(getDateDiff(data.start_time, data.end_time));
Автор решения: Aziz Umarov
→ Ссылка
let end_time = new Date("2021-04-19 12:20:38");
let start_time = new Date("2021-04-19 12:07:12");
console.log(new Date(end_time - start_time).toLocaleDateString("en-SE") + ' ' + new Date(end_time - start_time).toLocaleTimeString("en-SE"))
console.log(new Date(0));
По отзывам в коментариях. Пояснение такое что не зачем интервал отображать ввиде даты поскольку оно может породить массу проблем. В человеко читаемом виде указывайте какие проблемы - в днях месяцах года часах, а не в дате.