JavaScript倒计时实现

274 阅读1分钟

JavaScript倒计时实现

原理:

利用JavaScript的date时间内置对象获得当前时间的时间戳,以及你需要的时间的时间戳,两者之间的时间差就是倒计时。
再把时间差的毫秒数转换成天、时、分,和秒。

实现代码:

<!DOCTYPE html>
<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>      
        *{
            padding: 0;margin: 0;
        }
        body{
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .hours{
            width: 100px;
            height: 100px;
            border: 10px solid #ccc;
            margin: 100px 20px;
            line-height: 100px;
            text-align: center;
        }
        .min{
            width: 100px;
            height: 100px;
            border: 10px solid #ccc;
            line-height: 100px;
            text-align: center;
            margin: 100px 20px;
        }
        .scecond{
            width: 100px;
            height: 100px;
            border: 10px solid #ccc;
            margin: 100px 20px;
            line-height: 100px;
            text-align: center;
            
        }
    </style>
</head>
<body>
    <div class="hours"></div>
    <div class="min"></div>
    <div class="scecond"></div>
    <script>
        let h=document.querySelector(".hours");
        let m=document.querySelector(".min");
        let s=document.querySelector(".scecond");
        function countDown(time){
            let nowTime=+new Date();
            let inputTime=+new Date(time);
            let times=(inputTime-nowTime)/1000;

            let day=Math.floor(times/86400);
            let hours=Math.floor((times%86400)/3600);
            let min=Math.floor(  ((times%86400)%3600)/60   );
            let scecond=Math.floor(  (((times%86400)%3600)%60)   );
            // var scecond=Math.floor(  times%60   ); 这个也可以求秒数,更简单
            console.log(day+'天'+hours+'时'+min+'分'+scecond+'秒');
            h.innerHTML=hours+`小时`;
            m.innerHTML=min+`分`;
            s.innerHTML=scecond+`秒`;
            //利用求余方式求的是整数天数、小时、分钟,分钟过后然后把余下的秒数输出就行
        }
        setInterval(countDown,1000,"2022-3-22 17:00:00");
    </script>
</body>
</html>

显示效果:

image.png 该效果是2022年三月22日16:04分时候的时间和当天17点00分剩余的时候