Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:计算ajax响应的持续时间_Javascript_Ajax - Fatal编程技术网

Javascript:计算ajax响应的持续时间

Javascript:计算ajax响应的持续时间,javascript,ajax,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

我试图计算从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个对象,每个对象都有开始时间和停止时间。我想计算总时间,以小时和分钟为单位


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

您可以简单地使用
日期
来构造一个日期,然后从结束时间减去开始时间

这里我使用
getTime
得到毫秒差,除以1000得到秒,除以60得到分钟

如果差异较大,还可以使用
getMonth

const starttime='2020-07-16 13:00:00'
常数停止时间='2020-07-16 13:40:00'
持续时间=新日期(停止时间)-新日期(开始时间)

log(duration/1000/60)
您可以简单地使用
Date
构造一个日期,然后从结束时间减去开始时间

这里我使用
getTime
得到毫秒差,除以1000得到秒,除以60得到分钟

如果差异较大,还可以使用
getMonth

const starttime='2020-07-16 13:00:00'
常数停止时间='2020-07-16 13:40:00'
持续时间=新日期(停止时间)-新日期(开始时间)

console.log(duration/1000/60)
使用类似
2020-07-16 13:00:00:00的字符串
您可以构造一个JS
日期
并使用
getTime()
这样的字符串获取UNIX时代以来的毫秒数

new Date('2020-07-16 13:00:00').getTime()
或者,如果您愿意,正如@Yousaf在评论中指出的,您实际上可以直接将
-
运算符与
日期一起使用,并获得毫秒差

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

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

使用类似于
2020-07-16 13:00:00
的字符串,您可以构造一个JS
日期
并使用
getTime()
类似的方法获得UNIX纪元以来的毫秒数

new Date('2020-07-16 13:00:00').getTime()
或者,如果您愿意,正如@Yousaf在评论中指出的,您实际上可以直接将
-
运算符与
日期一起使用,并获得毫秒差

// resolves to 3600000, or 1 hour in milliseconds
new Date('2020-07-16 13:00:00') - new Date('2020-07-16 12:00:00') 
使用它,您可以得到任意两个日期之间以毫秒为单位的差值,并使用简单的算法将其转换为小时/分钟/任何值。

[UPDATE]

我想你可以检查这个,但基本上你应该把每个日期转换成js日期,得到毫秒数,然后计算endtime-startime

const timelapse=新日期(endtime).getTime()-新日期(startime).getTime()

从那里,您可以将其转换为所需的单位(例如:秒=毫秒/1000)

对不起,我写得太快了。

[更新]

我想你可以检查这个,但基本上你应该把每个日期转换成js日期,得到毫秒数,然后计算endtime-startime

const timelapse=新日期(endtime).getTime()-新日期(startime).getTime()

从那里,您可以将其转换为所需的单位(例如:秒=毫秒/1000)



对不起,我写得太快了。

有什么问题吗?这基本上是关于减去两个s,就像它们是数字一样。这将以毫秒为单位计算出差值。然后是基本的微积分。(请注意,您的问题标题确实具有误导性,因为听起来您想要测量ajax响应完成之前的时间,尽管ajax实际上与问题完全无关)这是ajax问题吗?这是否回答了您的问题?嗨,克里斯,很抱歉,我根据如何计算给定的持续时间发布了这个问题。假设有10行开始时间和10行停止时间,我是否需要减去它们中的每一行并将其添加到持续时间中。或者如果有更简单的方法。问题是什么?这基本上是关于减去两个s,就像它们是数字一样。这将以毫秒为单位计算出差值。然后是基本的微积分。(请注意,您的问题标题确实具有误导性,因为听起来您想要测量ajax响应完成之前的时间,尽管ajax实际上与问题完全无关)这是ajax问题吗?这是否回答了您的问题?嗨,克里斯,很抱歉,我根据如何计算给定的持续时间发布了这个问题。假设有10行开始时间和10行停止时间,我是否需要减去它们中的每一行并将其添加到持续时间中。或者如果有一个更简单的方法来做这件事。这件事大约有五个副本,我想我们不要把它改成六个吧?这些副本都很旧了,你发布的是整数日期而不是字符串。没有必要将
duration
转换为
Date
(duration/1000)/60
会给你以分钟为单位的持续时间,这无关紧要;副本显示了如何构造日期对象,并且您可以简单地减去它们;这不是一个新手教程网站,OP总是需要一些工作。这上面大约有五个副本,我想我们不要把它改成六个吧?这些副本都很旧,你发布的是整数日期而不是字符串。没有必要将
持续时间
转换为
日期
(持续时间/1000)/60
会给你以分钟为单位的持续时间,这无关紧要;副本显示了如何构造日期对象,并且您可以简单地减去它们;这不是一个新手教程网站,OP总是需要做一些工作。这个网站大约有五个副本,所以,我想我们不要让它变成六个吧?我同意你的观点,但我通常在这里回答问题只是为了帮助有具体问题的人,比如这一个。当然,这可能与其他问题有一些重叠,但由于问题的性质,OP可能不知道用谷歌搜索什么才能找到问题