如果我有两个日期,如何使用JavaScript在分钟内得到两个日期之间的差异?


当前回答

您可以进行如下操作:

获取日期的差异(以毫秒为单位) 将毫秒转换为分钟i-e ms/1000/60

代码:

let dateOne = new Date("2020-07-10");
let dateTwo = new Date("2020-07-11");

let msDifference =  dateTwo - dateOne;
let minutes = Math.floor(msDifference/1000/60);
console.log("Minutes between two dates =",minutes);

其他回答

var startTime = new Date('2012/10/09 12:00'); 
var endTime = new Date('2013/10/09 12:00');
var difference = endTime.getTime() - startTime.getTime(); // This will give difference in milliseconds
var resultInMinutes = Math.round(difference / 60000);

这是可行的

duration = moment.duration(moment(end_time).diff(moment(start_time)))

这个问题用moment.js很容易解决,就像下面这个例子:

var差异= mostDate。鼩(minorDate,“分钟”);

第二个参数可以更改为其他参数,请参阅moment.js文档。

例如:“天”、“小时”、“分钟”等。

http://momentjs.com/docs/

moment.js的CDN在这里:

https://cdnjs.com/libraries/moment.js

谢谢。

编辑:

mostDate和minorDate应该是moment类型。

编辑2:

对于那些在2020年以后阅读我的答案的人来说,momentjs现在是一个遗留项目。

如果你还在寻找一个知名的库来做这项工作,我会推荐date-fns。

// How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?
var result = differenceInMinutes(
  new Date(2014, 6, 2, 12, 20, 0),
  new Date(2014, 6, 2, 12, 7, 59)
)
//=> 12

对于那些喜欢处理小数字的人

const today = new Date();
const endDate = new Date(startDate.setDate(startDate.getDate() + 7));
const days = parseInt((endDate - today) / (1000 * 60 * 60 * 24));
const hours = parseInt(Math.abs(endDate - today) / (1000 * 60 * 60) % 24);
const minutes = parseInt(Math.abs(endDate.getTime() - today.getTime()) / (1000 * 60) % 60);
const seconds = parseInt(Math.abs(endDate.getTime() - today.getTime()) / (1000) % 60); 

一个简单的函数来执行这个计算:

function getMinutesBetweenDates(startDate, endDate) {
    var diff = endDate.getTime() - startDate.getTime();
    return (diff / 60000);
}