我正在进行日期比较,并试图以日期,小时,分钟的格式计算并显示两个日期之间的差异 ... 日期值存储在数据库中,例如:
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
,我不确定它代表什么。
我想知道什么是正确的方法来计算两个日期之间的时间差,以及如何以正确且易读的方式显示结果。
欢迎任何帮助
答案 0 :(得分:3)
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/