Количество часов между двумя строками в Javascript - PullRequest
0 голосов
/ 20 марта 2020

У меня есть 2 строки «18:13:10» и «15:45:11», мне нужно вычислить количество часов между ними? Например, результат 6 часов 17 минут.

Я работаю с reactjs.

Спасибо

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Пусть Date() сделает тяжелую работу за вас:

    const d1 = new Date('1970-01-01T' + "18:13:10" + 'Z');
    const d2 = new Date('1970-01-01T' + '15:45:11' + 'Z');
    const diff = d1 - d2; // 887900 

Разница во времени в миллисекундах. Чтобы получить часы, минуты и секунды:

    const hours = Math.floor(diff/(1000*60*60)); // 2
    const mins = Math.floor((diff-(hours*1000*60*60)) / (1000*60)); // 27
    const secs = Math.floor(
      (diff-(hours*1000*60*60)-(mins*1000*60)) / 1000); // 59
0 голосов
/ 20 марта 2020

Просто создайте два экземпляра объекта Date, добавляя дату к полной строке времени. Используйте getTime и рассчитайте разницу во времени. Затем используйте методы getHours getMinutes и getSeconds для разницы дат.

	const d1 = new Date('1970-01-01 ' + "18:13:10");
	const d2 = new Date('1970-01-01 ' + '10:01:01');

	var difference = d1.getTime() - d2.getTime();

	console.log(new Date(difference).getHours()-1 + ' ' + new Date(difference).getMinutes()+ ' ' + new Date(difference).getSeconds())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...