需求中,需要对考试记录答题时间,需要跨越多个页面。答题,签名,交卷,多个页面需要一个统一的计时器。这里我们采用时间戳的方式解决。
计时开始
const temp = parseInt((new Date().getTime() / 1000).toString()); //当前时间
console.log('开始答题时间戳-----', temp)
setstartstamp(temp)
计时结束,计算全部时间
const nowDate1 = parseInt((new Date().getTime() / 1000).toString()); //当前时间
console.log('第二次获取时间戳', nowDate1)
let result = caculateTime(startstamp, nowDate1)
console.log('result结果----', result)
计算时间差的方法如下
const caculateTime = (startTime, endTime) => {
var stime = startTime;
var etime = endTime;
var usedTime = etime - stime; //两个时间戳相差的秒数
var days = Math.floor(usedTime / (24 * 3600));
//计算出小时数
var leave1 = usedTime % (24 * 3600); //计算天数后剩余的秒数
var hours = Math.floor(leave1 / (3600));
//计算相差分钟数
var leave2 = leave1 % (3600); //计算小时数后剩余的秒数
var minutes = Math.floor(leave2 / (60));
var dayStr = days == 0 ? "" : days + "天";
var hoursStr = hours == 0 ? "" : hours + "时";
var time = dayStr + hoursStr + minutes + "分";
return time;
}