Я пытаюсь создать вспомогательную функцию, которая находит разницу между двумя временами в минутах. Но я застрял в поиске разницы между значениями "toLocaleString()". Вот что у меня есть до сих пор:
format_time: (date) => {
var futureTime = new Date(date.getTime() + 15 * 60000).toLocaleString();
var currentTime = date.toLocaleString();
return // futureTime - CurrentTime;
},



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


если дата является строкой, преобразовать строку в отметку времени
new Date("2020/12/24 11:47:03").getTime();
рассчитать с отметкой времени.
return futureTimestamp - currentTimestamp
function diffMinutes(x, y) {
return (y.getTime() - x.getTime()) / 1000 / 60;
}
var a = new Date();
var b = new Date();
a.setHours(1);
b.setHours(2);
let minutes = diffMinutes(a, b);
console.info('Diff', minutes + 'minutes');Более просто с getTime(), который представляет время эпохи в миллисекундах. Таким образом, в этом контексте минуты будут:
1 минута = 60 секунд = 60 0000 миллисекунд
ваш код может быть:
function diffMinutes(date1, date2) {
const d1 = new Date(date1).getTime();
const d2 = new Date(date2).getTime();
return Math.round((d2 - d1) / 60000); // Can use Math.floor or Math.ceil depends up to you
}
Код обрабатывает отрицательные значения, если второй раз меньше первого, поэтому, если вы хотите, чтобы всегда были положительные значения, вы можете сделать:
return Math.abs(Math.round((d2 - d1) / 60000));
Примеры:
diffMinutes("01-01-2012 11:11:11", "01-01-2012 11:15:11") // 4
diffMinutes(new Date("01-01-2012 11:11:11"), "01-01-2012 11:00:11") // -11
diffMinutes(12323, 123213) // 2
Если вы знаете, что всегда вызываете «format_date», параметры будут оба объекта Date, вы можете уменьшить свою функцию до:
function diffMinutes(date1, date2) {
return Math.round((date2.getTime() - date1.getTime()) / 60000); // Can use Math.floor or Math.ceil depends up to you
}
отличная работа, именно то, что я ищу