Javascript:计算ajax响应的持续时间
我试图计算从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
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可能不知道用谷歌搜索什么才能找到问题