Машинопись: найдите разницу в датах / часах / минутах - PullRequest
0 голосов
/ 29 ноября 2018

Я работаю над сравнением дат и пытаюсь вычислить и отобразить разницу между двумя датами в формате дат, часов, минут ... Значения даты хранятся в БД следующим образом:

EndDate : 2018-11-29 10:49:49.9396033
PurchaseDate: 2018-11-29 10:49:07.4154497

И в моем угловом компоненте у меня есть:

let result = new Date(res.endDate).valueOf() - new Date(res.purchaseDate).valueOf();

Это приводит к: 42524, что я не уверен, что он представляет.

IИнтересно, как правильно рассчитать разницу во времени между двумя датами, а также как я могу отобразить результат в правильной и удобочитаемой форме.

Любая помощь приветствуется

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

Рабочий пример в codepen

 let endDate = new Date("2018-11-29 10:49:07.4154497");
 let purchaseDate = new Date("2018-11-29 10:49:49.9396033");
 let diffMs = (purchaseDate - endDate); // milliseconds
 let diffDays = Math.floor(diffMs / 86400000); // days
 let diffHrs = Math.floor((diffMs % 86400000) / 3600000); // hours
 let diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
 console.log(diffDays + " days, " + diffHrs + " hours, " + diffMins + " 
 minutes");
0 голосов
/ 03 декабря 2018

Что ж, есть чистый способ сделать это на javascript, как в Проверьте разницу во времени в Javascript

или вы можете использовать усилия, приложенные инженерами, разработавшими файл moment.js.В moment.js есть концепция продолжительности, ссылка на которую - https://momentjs.com/docs/#/durations/, и вы даже можете найти разницу в продолжительности, ссылаясь на документы здесь - https://momentjs.com/docs/#/durations/diffing/

0 голосов
/ 29 ноября 2018

Вы можете использовать метод getTime(), чтобы получить разницу во времени в миллисекундах

let time = purchaseDate.getTime() - endDate.getTime();

Затем вы можете отформатировать дату, как вам нужно, с помощью DatePipe librairy: https://angular.io/api/common/DatePipe

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