首页 > 解决方案 > 计算日期之间的差异并从该差异开始计数

问题描述

我是角度的新手,我想知道是否有办法计算特定日期和当前日期之间的差异,然后从该差异开始计算时间?

示例:29/01/2020 21:00:00 - 29/01/2020 21:30:00 相差 30 分钟...计数应从 30 分钟开始,即 00:30:00

演示

代码

startTime(){
  this.interval = setInterval(() => {
      if (this.time === 0) {
        this.time++;
      } else {
        this.time++;
      }
      this.display = this.time;

      return this.display;
    }, 1000);
}

标签: javascriptangulartypescript

解决方案


您可以使用Date.getTime()以毫秒为单位计算两个日期之间的差异。如果您Date从这个差异创建一个新对象,它将包含这个间隔的表示。所以你只需要增加秒数并显示格式化的时间:

// difference between two dates in milliseconds
const diff = new Date('May 1,2019 11:20:00').getTime() - new Date('May 1,2019 11:00:00').getTime();
// new date object created from this difference
const start = new Date(diff);
const el = document.getElementById('time');
setInterval(() => {
  // updating the time every second
  start.setSeconds(start.getSeconds() + 1);
  el.innerHTML = `${format(start.getUTCHours())}: ${format(start.getUTCMinutes())}: ${format(start.getUTCSeconds())}`;
}, 1000)

function format(n) {
  return n < 10 ? '0' + n : '' + n;
}
<div id=time></div>


推荐阅读