使用moment实现倒计时

代码走起:

<!DOCTYPE html>
<html lang="zh_CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style></style>
  </head>

  <body>
    距离24小时之后还剩:<span id="sp1"></span>天<span id="sp2"></span>小时<span id="sp3"></span
    >分<span id="sp4"></span>秒
    <script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
    <script>
      let sp1 = document.getElementById("sp1");
      let sp2 = document.getElementById("sp2");
      let sp3 = document.getElementById("sp3");
      let sp4 = document.getElementById("sp4");
      // 再来一个使用了moment库实现的倒计时
      function showTime(time) {
        let start = moment(new Date()); //获取开始时间
        let end = moment(new Date(time)); //结束时间
        let diff = end.diff(start); //时间差
        var timediff = Math.round(diff / 1000);
        //获取还剩多少天
        var day = parseInt(timediff / 3600 / 24);
        //获取还剩多少小时
        var hour = parseInt((timediff / 3600) % 24);
        //获取还剩多少分钟
        var minute = parseInt((timediff / 60) % 60);
        //获取还剩多少秒
        var second = timediff % 60;
        //输出还剩多少时间
        sp1.innerHTML = day;
        sp2.innerHTML = timerFilter(hour);
        sp3.innerHTML = timerFilter(minute);
        sp4.innerHTML = timerFilter(second);
        console.log(
          day +
            "天" +
            timerFilter(hour) +
            "小时" +
            timerFilter(minute) +
            "分" +
            timerFilter(second) +
            "秒"
        );
        //给小于10的数值前面加 0
        function timerFilter(params) {
          if (params - 0 < 10) {
            return "0" + params;
          } else {
            return params;
          }
        }
        window.requestAnimationFrame(() => {
          showTime(time);
        });
      }
      let now = Date.now() + 60 * 1000 * 60 * 24;
      showTime(now);
    </script>
  </body>
</html>
posted @ 2021-08-02 17:53  菌子乐水  阅读(1118)  评论(0编辑  收藏  举报