首页 > 解决方案 > Javascript:计算 ajax 响应的持续时间

问题描述

我正在尝试计算从 ajax 响应中获得的任务的持续时间。

以下是我的表值:

 Jobid   techid, techtype,    notes,                            starttime,             stoptime
    1      1     Brakes       Break disc needed to be changed   2020-07-16 13:00:00   2020-07-16 13:40:00
    1      2     Oil Change   Replaced oil                      2020-07-17 08:00:00   2020-07-17 09:00:00
    1      3     Cleaning     Cleaned the vehicle               2020-07-17 10:00:00   2020-07-17 10:30:00

在我的 ajax 响应中,在上述情况下,我得到 3 个对象,每个对象都有开始时间和停止时间。我想计算以小时和分钟为单位的总时间。

有没有一种简单的方法来计算总持续时间?

标签: javascriptajax

解决方案


使用像这样的字符串,2020-07-16 13:00:00您可以构造一个 JSDate并获得自 UNIX 纪元以来的毫秒数getTime()

new Date('2020-07-16 13:00:00').getTime()

或者,如果您愿意,正如@Yousaf 在评论中指出的那样,您实际上可以直接将-运算符与Dates 一起使用并获得毫秒差异

// resolves to 3600000, or 1 hour in milliseconds
new Date('2020-07-16 13:00:00') - new Date('2020-07-16 12:00:00') 

使用它,您可以获得任何两个日期之间的毫秒差,并通过简单的算术将其转换为小时/分钟/任何值。


推荐阅读