0

我正在尝试创建一个辅助函数,它可以在几分钟内找到两次之间的差异。但是我一直在寻找“toLocaleString()”值之间的差异。这是我到目前为止所拥有的:

  format_time: (date) => {
    var futureTime = new Date(date.getTime() + 15 * 60000).toLocaleString();
    var currentTime = date.toLocaleString();
    return // futureTime - CurrentTime;
  },  
4

3 回答 3

2

更简单的是,getTime()它表示以毫秒为单位的纪元时间。因此,在这种情况下,会议记录将是:

1 分钟 = 60 秒 = 60 0000 毫秒

您的代码可以是:

function diffMinutes(date1, date2) {
    const d1 = new Date(date1).getTime();
    const d2 = new Date(date2).getTime();
    return Math.round((d2 - d1) / 60000); // Can use Math.floor or Math.ceil depends up to you
}

如果第二次低于第一次,该代码将处理负值,因此如果您希望始终为正值,您可以执行以下操作:

    return Math.abs(Math.round((d2 - d1) / 60000));

例子:

diffMinutes("01-01-2012 11:11:11", "01-01-2012 11:15:11") // 4
diffMinutes(new Date("01-01-2012 11:11:11"), "01-01-2012 11:00:11") // -11
diffMinutes(12323, 123213) // 2

如果您知道总是调用“format_date”,则参数将是两个Date对象,您可以将函数简化为:

function diffMinutes(date1, date2) {
    return Math.round((date2.getTime() - date1.getTime()) / 60000); // Can use Math.floor or Math.ceil depends up to you
}
于 2020-12-24T03:46:20.793 回答
0

如果日期是字符串,则将字符串转换为时间戳

new Date("2020/12/24 11:47:03").getTime();

用时间戳计算。

return futureTimestamp - currentTimestamp

于 2020-12-24T03:41:59.710 回答
0

function diffMinutes(x, y) {
  return (y.getTime() - x.getTime()) / 1000 / 60;
}

var a = new Date();
var b = new Date();
a.setHours(1);
b.setHours(2);

let minutes = diffMinutes(a, b);
console.log('Diff', minutes + 'minutes');

于 2020-12-24T03:43:29.397 回答