我必须点击一个我无法修复的API,我需要启动一个计时器以显示某人排队的时间。我回来的日期是这种格式1556214336.316。问题是年份始终显示为1970,但是时间是正确的开始时间。我需要计算现在的时间与创建对话的时间之间的差。我尝试了这一点,但收效甚微,我想知道是否有一种优雅的方法来仅获取时间差而不是总秒数。
convertDateToTimerFormat = (time) => {
const now = new Date();
const diff = Math.round((now - parseInt(time.toString().replace('.', ''))) / 1000);
const hours = new Date(diff).getHours();
const minutes = new Date(diff).getMinutes();
const seconds = new Date(diff).getSeconds();
return `${hours}:${minutes}:${seconds}`;
}
怪异的parseInt(time.toString().replace('.', '')))似乎解决了1970年的问题,但是我仍然无法获得所需的数据。
我尝试了momentjs库,但是他们的diff方法似乎只允许几天和几个小时。
任何帮助/指导,将不胜感激。
使用工作代码进行编辑:
convertDateToTimerFormat = (time) => {
const now = new Date();
// eslint-disable-next-line radix
const diff = new Date(Number(now - parseInt(time.toString().replace(/\./g, ''))));
const hours = diff.getHours();
const minutes = diff.getMinutes();
const seconds = diff.getSeconds();
return `${hours}:${minutes}:${seconds}`;
}
阿晨1998
拉丁的传说
相关分类