javascript - 计算日期之间的差异并从该差异开始计数
问题描述
我是角度的新手,我想知道是否有办法计算特定日期和当前日期之间的差异,然后从该差异开始计算时间?
示例: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);
}
解决方案
您可以使用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>
推荐阅读
- angular - rxjs visibilitychange 事件未在 Angular 4 中触发
- ruby-on-rails - 不可用 Gem::SafeYAML 何时运行“捆绑安装”
- javascript - D3 v4 forceSimulation 移动不碰撞的元素
- python - 如何存储通过 pd.dropna(df.dropna(axis=0)) 删除的行的行号
- r - 带有协和飞机的 R TSP 包
- flowtype - 为什么会失败?
- powerbi - ALLEXCEPT 函数不适用于过滤器
- three.js - three.js:在一定距离处,整个场景在阴影中变暗
- spring - org.springframework.beans.ConversionNotSupportedException:无法将“java.lang.String”类型的值转换为所需的“java.util.Optional”类型
- java - 如何获取 JavaFX TableColumn 的内容?