1) Метод Date.parse преобразует дату в миллисекунды с 1 января 1970 года. См. https://www.w3schools.com/Jsref/jsref_parse.asp,, поэтому преобразование даты пользовательского ввода в миллисекунды с 1 января 1970 года.
2)В Javascript метод getTime () для нового объекта Date () получает количество миллисекунд, прошедших с 1 января 1970 года до текущего времени.
3) Поэтому, обнаружение разницы в этих миллисекундах дает вам разницу в миллисекундах.
4) Поскольку 1 час = 3600000 мс, чтобы найти разницу в часах, разделите ваш ответ на 3600000и получите разницу в часах.
- Вы также, кажется, забыли включить dep_time при разборе вашей даты.
И решение ниже:
<script>
"use strict";
var user_date = '31-03-2019 12:30 PM';
var datePieces = user_date.split("-");
var mydate=[datePieces[1] , datePieces[0] , datePieces[2]].join("-");
var todayDate = new Date();
var todayToDate = todayDate.getTime();
// In JavaScript, getTime() gets the number of milliseconds that have passed since January 1, 1970.
var inputToDate = Date.parse(mydate);
if (inputToDate > todayToDate) {
var diff = (inputToDate - todayToDate) / 3600000; //Since 1 h = 3600000 ms
alert(diff);
} else {
var diff = (todayToDate - inputToDate) / 3600000; //Since 1 h = 3600000 ms
alert(diff);
}
</script>