打字稿:以日期/小时/分钟为单位查找日期差

时间:2018-11-29 12:17:42

标签: javascript angular typescript date

我正在进行日期比较,并试图以日期,小时,分钟的格式计算并显示两个日期之间的差异 ... 日期值存储在数据库中,例如:

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

在Angular组件中,我有:

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

这将导致:42524,我不确定它代表什么。

我想知道什么是正确的方法来计算两个日期之间的时间差,以及如何以正确且易读的方式显示结果。

欢迎任何帮助

3 个答案:

答案 0 :(得分:3)

Working Example in 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");

答案 1 :(得分:2)

您可以使用getTime()方法来获取以毫秒为单位的时差时间

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

然后,您可以使用 DatePipe 库设置所需的日期格式:https://angular.io/api/common/DatePipe

答案 2 :(得分:1)

好吧,就像Check time difference in Javascript

或者,您可以重用开发moment.js的工程师所做的工作。在moment.js中,有一个称为持续时间的概念,其链接为-https://momentjs.com/docs/#/durations/ 并且您甚至可以通过在此处引用文档来找到持续时间的差异-https://momentjs.com/docs/#/durations/diffing/