我正在尝试计算任务的持续时间,这是我从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个对象,每个对象都有开始时间和停止时间。我想以小时和分钟为单位计算总时间。
有没有简单的方法来计算总持续时间?
发布于 2020-07-17 21:16:20
您可以简单地使用Date构造一个日期,然后从结束时间减去开始时间。
在这里,我使用getTime得到毫秒差,除以1000得到秒,再除以60得到分钟。
如果你有更大的不同,你也可以使用getMonth等。
const starttime = '2020-07-16 13:00:00'
const stoptime = '2020-07-16 13:40:00'
const duration = new Date(stoptime) - new Date(starttime)
console.log(duration / 1000 / 60)
发布于 2020-07-17 21:16:32
使用像2020-07-16 13:00:00这样的字符串,您可以构造一个JS Date,并使用getTime()获得自UNIX时代以来的毫秒数,如下所示
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') 使用它,您可以获得任意两个日期之间的毫秒差,并使用简单的算法将其转换为小时/分钟/任何值。
发布于 2020-07-17 21:20:59
更新
我认为你可以检查这个answer,但基本上你应该将每个日期转换成js日期,得到毫秒数,然后计算endtime - startime。
const timelapse =新日期(结束时间).getTime()-新日期(开始时间).getTime();
在此基础上,将其转换为所需的单位(例如:秒=毫秒/1000);
对不起,我写得太快了。
https://stackoverflow.com/questions/62954732
复制相似问题