js 两时间相差倒计时(同步服务器思路)

众所周知,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();
 }

同步服务器时间倒计时思路:
规定的结束时间减请求接口获取服务器时间得出时间差再用这个时间差的时间戳定时器每秒减一秒

如有错误、不足,以及优化建议,敬请留言…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值