JavaScript 倒计时

465 阅读1分钟

用JavaScript达到从现在到目标时间的倒计时

效果展示

image.png

image.png

image.png js代码:

        var dbox = document.querySelectorAll(".box div")[0]
        var hbox = document.querySelectorAll(".box div")[1]
        var mbox = document.querySelectorAll(".box div")[2]
        var sbox = document.querySelectorAll(".box div")[3]
        var totime="2022-3-1 08:00:00"
        var countdown = function () {
            var otime = new Date()
            var imputTime = new Date(totime)
            var time = imputTime - otime
            if (time < 0) {
                console.log("error");
                return false
            }
            var d = Math.floor(time / 1000 / 60 / 60 / 24)
            d = d < 10 ? "0" + d : d
            var h = Math.floor(time / 1000 / 60 / 60 % 24)
            h = h < 10 ? "0" + h : h
            var m = Math.floor(time / 1000 / 60 % 60)
            m = m < 10 ? "0" + m : m
            var s = Math.floor(time / 1000 % 60)
            s = s < 10 ? "0" + s : s
            console.log(d + "天"+h + "时" + m + "分" + s+"秒");
            dbox.innerHTML=d+"天"
            hbox.innerHTML=h+"时"
            mbox.innerHTML=m+"分"
            sbox.innerHTML=s+"秒"
        }
        setInterval(countdown,1000)
        

    </script>

根据时间戳得到具体的时分秒的值,判断小于10的时候再前面补一个0

            d = d < 10 ? "0" + d : d
            var h = Math.floor(time / 1000 / 60 / 60 % 24)
            h = h < 10 ? "0" + h : h
            var m = Math.floor(time / 1000 / 60 % 60)
            m = m < 10 ? "0" + m : m
            var s = Math.floor(time / 1000 % 60)
            s = s < 10 ? "0" + s : s

完整代码:

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            margin: 100px auto;
            display: flex;
            justify-content: center;
        }

        .box div {
            height: 50px;
        }
    </style>
</head>

<body>
    <div class="box">
        <div>00天</div>
        <div>00时</div>
        <div>00分</div>
        <div>00秒</div>
    </div>
    <script>
        var dbox = document.querySelectorAll(".box div")[0]
        var hbox = document.querySelectorAll(".box div")[1]
        var mbox = document.querySelectorAll(".box div")[2]
        var sbox = document.querySelectorAll(".box div")[3]
        var totime="2022-3-1 08:00:00"
        var countdown = function () {
            var otime = new Date()
            var imputTime = new Date(totime)
            var time = imputTime - otime
            if (time < 0) {
                console.log("error");
                return false
            }
            var d = Math.floor(time / 1000 / 60 / 60 / 24)
            d = d < 10 ? "0" + d : d
            var h = Math.floor(time / 1000 / 60 / 60 % 24)
            h = h < 10 ? "0" + h : h
            var m = Math.floor(time / 1000 / 60 % 60)
            m = m < 10 ? "0" + m : m
            var s = Math.floor(time / 1000 % 60)
            s = s < 10 ? "0" + s : s
            console.log(d + "天"+h + "时" + m + "分" + s+"秒");
            dbox.innerHTML=d+"天"
            hbox.innerHTML=h+"时"
            mbox.innerHTML=m+"分"
            sbox.innerHTML=s+"秒"
        }
        setInterval(countdown,1000)
        

    </script>
</body>

</html>