如何正确计算某一时刻的分钟数?

问题描述 投票:0回答:3

有一个字符串形式的过程的开始日期:

'2020-03-02 06:49:05'

以及处理完成日期:

'2020-03-02 07:05:02'

问题:从方法的角度来看,最正确的方法是什么-计算流程开始和结束之间的差异(以分钟为单位)?(如果vue.jsnuxt.js中有任何内置方法,那么也非常有必要了解它们。)

javascript vue.js nuxt.js
3个回答
5
投票

我认为最好的方法是使用Javascript Date对象,

d1 = '2020-03-02 06:49:05'
d2 = '2020-03-02 07:05:02'

diff_in_millis = Math.abs(new Date(d1) - new Date(d2))
diff_in_minutes = diff/60000

4
投票

我建议使用momentjs,您可以执行以下操作:

var duration = moment.duration(endTime.diff(startTime));
var minutes = duration.minutes();

有关momentjs中的持续时间的更多信息,请参见here


2
投票

使用Date.parse()从字符串创建日期。它以毫秒为单位返回日期,获取差值并将其转换为分钟。

请参见下面的代码段。

const startTime= Date.parse('2020-03-02 06:49:05')
const endTime = Date.parse('2020-03-02 07:05:02')

// Difference in Minutes
const durationInMin= (endTime-startTime)/60000;

console.log({ startTime, endTime, durationInMin })

alert(`Process took: ${durationInMin} minutes`)

注:对于人类可读的日期,我发现date-fns最有用。鉴于与moment.js相比,它的重量轻]

© www.soinside.com 2019 - 2024. All rights reserved.