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

Geo*_*rge 5 javascript date typescript angular

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

EndDate : 2018-11-29 10:49:49.9396033
PurchaseDate: 2018-11-29 10:49:07.4154497
Run Code Online (Sandbox Code Playgroud)

在我的Angular组件中,我有:

let result = new Date(res.endDate).valueOf() - new Date(res.purchaseDate).valueOf();
Run Code Online (Sandbox Code Playgroud)

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

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

欢迎任何帮助

veb*_*ben 6

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

let time = purchaseDate.getTime() - endDate.getTime();
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用DatePipe库根据需要格式化日期:https://angular.io/api/common/DatePipe


小智 6

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");
Run Code Online (Sandbox Code Playgroud)