倒计时

Posted hellowoeld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了倒计时相关的知识,希望对你有一定的参考价值。

1.区间倒计时

function getTimer(){
         const now=new Date().getTime();
         console.log(now)
         let end=1524861679153
         let last_time=end-now;
	 const px_d=1000*60*60*24;//一天的时间有多少毫秒
	 const px_h=1000*60*60;//一个小时
	 const px_m=1000*60;//分
	 const px_s=1000;//秒
	 let d=Math.floor(last_time/px_d);
	 let h=Math.floor((last_time-d*px_d)/px_h);
	 let m=Math.floor((last_time-d*px_d-h*px_h)/px_m);
	 let s=Math.floor((last_time-d*px_d-h*px_h-m*px_m)/px_s);
	 let r=[];
	 if(d>0){
		r.push(`<b>${d}</b>天`)
	 }
	 if(r.length||h>0){
		r.push(`<b>${h>9?h:‘0‘+h}</b>时`)
	 }
	 if(r.length||m>0){
		r.push(`<b>${m>9?m:‘0‘+m}</b>分`)
	 }
	 if(r.length||s>0){
		r.push(`<b>${s>9?s:‘0‘+s}</b>`)
	 }
	 let t=r.join(‘‘)
	 console.log(t)
	 document.body.innerhtml=t
}

 setInterval(function(){
     getTimer();
 },1000)

2.带天数的倒计时

 function countDown(times){
  var timer=null;
  timer=setInterval(function(){
    var day=0,
      hour=0,
      minute=0,
      second=0;//时间默认值
    if(times > 0){
      day = Math.floor(times / (60 * 60 * 24));
      hour = Math.floor(times / (60 * 60)) - (day * 24);
      minute = Math.floor(times / 60) - (day * 24 * 60) - (hour * 60);
      second = Math.floor(times) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
    }
    if (day <= 9) day = ‘0‘ + day;
    if (hour <= 9) hour = ‘0‘ + hour;
    if (minute <= 9) minute = ‘0‘ + minute;
    if (second <= 9) second = ‘0‘ + second;
    //
    console.log(day+"天:"+hour+"小时:"+minute+"分钟:"+second+"秒");
    times--;
  },1000);
  if(times<=0){
    clearInterval(timer);
  }
}

countDown(600);

3.单纯分钟和秒倒计时

function resetTime(time){
  var timer=null;
  var t=time;
  var m=0;
  var s=0;
  m=Math.floor(t/60%60);
  m<10&&(m=‘0‘+m);
  s=Math.floor(t%60);
  function countDown(){
   s--;
   s<10&&(s=‘0‘+s);
   if(s.length>=3){
    s=59;
    m="0"+(Number(m)-1);
   }
   if(m.length>=3){
    m=‘00‘;
    s=‘00‘;
    clearInterval(timer);
   }
   console.log(m+"分钟"+s+"秒");
  }
  timer=setInterval(countDown,1000);
}
resetTime(600)

  

以上是关于倒计时的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用片段和计时器的选项卡式活动上更新 UI

如何实现React原生倒计时圈

自动刷新android片段,直到满足条件

如果用户没有使用浏览器,则jQuery计时器停止

颤振计时器仅更新秒小部件

#yyds干货盘点#愚公系列2023年02月 .NET/C#知识点-程序运行计时的总结