众所周知,1分钟=60秒,1小时=60×60=3600秒,1天=24×60×60秒,那么接下来就好办了,上才艺…
需求
才艺展示
var timerID = null,
timerStatus = false;
monitorTimer();
function getDifferTime() {
var startDate, // 开始时间 Tue Jul 21 2020 13:27:30 GMT+0800 (中国标准时间)
endDate, // 结束时间 Wed Jul 22 2020 13:22:00 GMT+0800 (中国标准时间)
sDate, // 开始时间 时间戳 1595309250000
eDate, // 结束时间 1595395320000
dateDiffer, // 时间相差
days, //计算整数天数
afterDay, //取得算出天数后剩余的秒数
hours, //计算整数小时数
afterHour, //取得算出小时数后剩余的秒数
minute, //计算整数分
afterMinute, //取得算出分后剩余的秒数
time;
startDate = new Date();
endDate = new Date(endTime)
sDate = startDate.getTime();
eDate = endDate.getTime();
// console.log('startDate:',startDate,"endDate:",endDate,"sDate:",sDate,"eDate:",eDate);
dateDiffer = (eDate - sDate)/1000;
if (dateDiffer>0){
days = parseInt(dateDiffer/(24*60*60));
afterDay = dateDiffer - days*24*60*60;
hours = parseInt(afterDay/(60*60));
afterHour = dateDiffer - days*24*60*60 - hours*60*60;
minute = parseInt(afterHour/60);
afterMinute = parseInt(dateDiffer - days*24*60*60 - hours*60*60 - minute*60);
if (afterHour<10){
hours = "0" + hours;
}
if (minute<10){
minute = "0" + minute;
}
if (afterMinute<10) {
afterMinute = "0" + afterMinute;
}
time = days + ' 天 ' + hours + ' 小时 ' + minute + ' 分 ' + afterMinute + ' 秒';
timerID = setTimeout("getDifferTime()", 1000);
timerStatus = true;
}else {
time = '** 天 ** 小时 ** 分 ** 秒';
clearTimeout(timerID)
}
$('#timer').text(time);
};
function monitorTimer() {
if (timerStatus)
clearTimeout(timerID);
timerStatus = false;
getDifferTime();
}
同步服务器时间倒计时思路:
规定的结束时间减请求接口获取服务器时间得出时间差再用这个时间差的时间戳定时器每秒减一秒
如有错误、不足,以及优化建议,敬请留言…