在开发的过程中可能需要计算当前时间和记录的开始时间的时间差
const getBetweenTimeFormatter = (time) => {
/**
* 计算当前时间和指定的字符串时间的时间差并格式化 为 天-时-分
*/
var diff = '';
let time1 = new Date(time.replace(/-/g, '/')).getTime()
var time_diff = new Date().getTime() - time1;
// 计算相差天数
var days = Math.floor(time_diff / (24 * 3600 * 1000));
// 计算相差小时数
var leave1 = time_diff % ( 24 * 3600 * 1000);
var hours = Math.floor(leave1 / (3600 * 1000));
var leave2 =leave1 % (3600 * 1000);
var minutes = Math.floor(leave2 / (60 * 1000));
let dayStr = days == 0 ? '' : days + '天'
let hoursStr = hours == 0 ? '' : hours + '时'
diff = dayStr + hoursStr + minutes + '分'
return diff;
}
其中
let time1 = new Date(time.replace(/-/g, '/')).getTime()
是为了解决 `ios` 计算时间 为 NaN 的问题,把 - 修改 为 /
然后在页面初始化,查询设备列表,如果有压力的开始监测时间,计算时长,并且更新到视图上
if(res[0].stressbegin!=="") {
let timer1 = setInterval(()=>{
let time = getBetweenTimeFormatter(res[0].stressbegin)
this.setData({
time
})
},1000)
this.data.timerList.push(timer1)
}