倒计时案例 JavaScript

一、Date内置对象(时间戳)

在做倒计时之前我们要了解 Date内置对象
该实例呈现时间中的某个时刻。Date 对象则基于 Unix Time Stamp,即自1970年1月1日(UTC)起经过的毫秒数。
创建一个新Date对象的唯一方法是通过new 操作符
例如:

let now = new Date();

若将它作为常规函数调用(即不加 new 操作符),将返回一个字符串,而非 Date 对象。

有三种方法获得总的毫秒数
如下:

// 1. 通过 valueOf()  getTime()
        var date = new Date();
        console.log(date.valueOf()); // 就是 我们现在时间 距离1970.1.1 总的毫秒数
        console.log(date.getTime());
        // 2. 简单的写法 (最常用的写法)
        var date1 = +new Date(); // +new Date()  返回的就是总的毫秒数
        console.log(date1);
        // 3. H5 新增的 获得总的毫秒数
        console.log(Date.now());

运行截图为:在这里插入图片描述
注意:时间一直在不断的变化 这四个值有时可能不同是因为程序执行也要时间

二、倒计时案例

算法思想 用结束时间减现在时间等于倒计时时间
用毫秒数相减 就不会出现 11.02-10.50 负数的情况
最后再把毫秒数转化为 天时分秒
毫秒要先除以1000转化为秒
秒/60=分/60=时/24=天
因为可能除出来是小数
所以用到了%给它取余 取整
具体代码实现:

 function countdown(time) {
      var nowtime = +new Date(); // +new Date()  返回的就是现在时间总的毫秒数
      var deadline = +new Date(time); //返回的是用户输入的时间总的毫秒数
      var count = (deadline - nowtime) / 1000; //count 就是剩余时间总的秒数
      //parseInt(string, radix)   解析一个字符串并返回指定基数的十进制整数 要被解析的值。
//如果参数不是一个字符串,则将其转换为字符串
      var day = parseInt(count / 60 / 60 / 24); //把秒数转化成天数
      var hours = parseInt(count / 60 / 60 % 24); //转化成小时
      //能被24整除的就是0点整 不能整除的取余数就是几点整
      hours = hours > 9 ? hours : '0' + hours; //三目运算符  如果hours>9就执行 hours  否则执行 '0'+hours
      //加上三目运算符的目的是 把时间输出成 08 01 这种情况
      var minutes = parseInt(count / 60 % 60); //分
      minutes = minutes > 9 ? minutes : '0' + minutes;
      var seconds = parseInt(count % 60); //秒
      seconds = seconds > 9 ? seconds : '0' + seconds;
      var a = '倒计时:' + day + '天' + hours + '小时' + minutes + '分' + seconds + '秒';
      console.log(a);
    }
    countdown('2022-5-8 21:00:00'); //这里是结束时间 需要用户自己输入

当前时间:
在这里插入图片描述

结束时间
2022-5-8 21:00:00

代码运行结果:
倒计时:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值