Получение разницы между двумя значениями в формате двадцать четыре часа с использованием JavaScript - PullRequest
1 голос
/ 03 июня 2019

У меня есть раскрывающееся меню с указанием времени начала и окончания занятий. Формат времени - 24 часа. * 1001 EG-*

08:30 - 12:00
21:00 - 00:00
05:00 - 10:00

Мне нужно узнать разницу между временем начала и окончания в часах. И я использовал следующий код.

var diff = parseFloat(endTime) - parseFloat(startTime);

Так что, если я выберу время 21:00 - 00:00, получится значение -21. Но фактическое значение должно составлять 3 часа. Более того, если кто-то выбирает время 21:00 - 00:00, разница должна составлять 3 часа, а если кто-то выбирает время 21:00 - 12:00, разница должна составлять 15 часов. Как мне этого добиться?

1 Ответ

2 голосов
/ 03 июня 2019

Первое решение: Преобразуйте ваш час в DateTime формат и используйте

function diff_hours(dt2, dt1) 
 {

  var diff =(dt2.getTime() - dt1.getTime()) / 1000;
  diff /= (60 * 60);
  return Math.abs(Math.round(diff));

 }

Это даст вам разницу в часах.

Второе решение: пользовательская функция, если вы действительно хотите использовать только строку.

function diffTime(time1,time2) {
    var hour1 = time1.split(':')[0];
    var hour2 = time2.split(':')[0];
    var min1 = time1.split(':')[1];
    var min2 = time2.split(':')[1];

    var diff_hour = hour2 - hour1;
    var diff_min = min2 - min1;
    if (diff_hour<0) {
        diff_hour+= 24;
    }
    if (diff_min<0) {
        diff_min+=60;
        diff_hour--;
    } else if(diff_min>=60){
        diff_min-=60;
        diff_hour++;
    }
    return [diff_hour,diff_min]

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...