js制作简易倒计时

待我称王封你为后i 2022-03-28 15:01 385阅读 0赞

一.首先介绍用到date的api
new Date():获取当前时间
getTime():获取距离1970年的毫秒数
getFullYear():获取年份
getMonth():获取月份,月份范围是0-11
getDate():获取天份

二.定时器简介
js中主要有以下两种定时器
1.setTimeout(函数,毫秒数)
表示一次性定时器,多久后执行函数
2.setInterval(函数,毫秒数)
表示周期性定时器,隔多久便执行一次函数
用法:
1)function count(){console.log(1);} setTimeout(count,1000);
2)setTimeout(function(){console.log(1);},1000);
3)setTimeout(()=>{console.log(1);},1000);
清除定时器 clearTimeout/clearInterval

  1. var i=1;
  2. var timer=setInterval(()=>{
  3. console.log(i++);
  4. if(i>10){ clearInterval(timer);
  5. }
  6. },1000);

三.倒计时原理

1.获取两个时间的时间差:即相差的毫秒数
2.将对应的毫秒数转化成(天)时,分,秒。并以时:分:秒的形式展现
3.设置定时器,每隔1000毫秒,便执行秒钟减一
制作类京东每日秒杀代码如下

  1. <script>
  2. function countDown(){
  3. var time2 = new Date();
  4. var time1 = new Date( time2.getFullYear(), time2.getMonth(), time2.getDate()+1, 10, 0, 0);
  5. var time = time1 - time2;//获取相差毫秒数,可以直接相减
  6. var d = parseInt(time / 1000);
  7. var day = parseInt(d / 3600 / 24);
  8. var h = parseInt(d / 3600 % 24);
  9. var m = parseInt(d % 3600 / 60);
  10. var s = parseInt(d % 60);
  11. timer.innerHTML = (parseInt(h / 10) + '' + h % 10) + ":" + (parseInt(m / 10) + '' + m % 10) + ":" + (parseInt(s / 10) + '' + s % 10);
  12. setInterval(
  13. () => {
  14. s--;
  15. timer.innerHTML = (parseInt(h / 10) + '' + h % 10) + ":" + (parseInt(m / 10) + '' + m % 10) + ":" + (parseInt(s / 10) + '' + s % 10);
  16. if (s == 0&&(h!=0||m!=0)) {
  17. s = 60;
  18. if (m == 0&&h!=0) { m = 60;
  19. h-- ;}
  20. m--;
  21. }
  22. else{ countDown();}
  23. }, 1000
  24. );
  25. }
  26. countDown();
  27. </script>

最终效果如下:
在这里插入图片描述
说明:
a.如何得到时分秒和天数

m/1000=d*24*3600+h*3600+m*60+s;

second:直接模60,就是秒

minute:直接模3600,就是m*60+s,再除以60就是分

hour:1.直接模3600*24,得到h*3600+m*60+s,然后再除以3600就是小时

2.直接除以3600得到d*24+h,然后再模24就是小时

day:直接除以3600*24就是天数

b.怎么显示00:00:00形式

通过字符串拼接

parseInt(second/10)+’’+second%10

c.要判断几种特殊情况
1)1:0:0
2)0:1:0
3)0:0:1

发表评论

表情:
评论列表 (有 0 条评论,385人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js如何实现简易计时效果

    js如何实现简易倒计时效果 实现倒计时功能首先是得到目标时间,然后用当前时间减去目标时间,最后将时间差传化为天数、时、分、秒。由于得到的时间不能直接运算,可以采用obje...