案例~时间倒计时

<!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>

        html,body{

            height: 100%;

            background-color: #000;

            display: flex;

            justify-content: center;

            align-items: center;

        }

        .box{

            width: 800px;

            color: #fff;

            border: 2px solid #fff;

            text-align: center;

        }

        .box p{

            font-size: 24px;

        }

        .box p span{

            color: red;

        }

    </style>

</head>

<body>

    <div class="box">

        <h1>倒计时</h1>

        <p>

            距离<span class="to-date">2024-01-01</span>还剩

            <span class="rest-year">0</span>年

            <span class="rest-month">00</span>月

            <span class="rest-date">00</span>日

            <span class="rest-hour">00</span>时

            <span class="rest-minute">00</span>分

            <span class="rest-second">00</span>秒

        </p>

    </div>

    <script>

        // 获取元素

        var toDate = document.querySelector('.to-date');

        var restYear = document.querySelector('.rest-year');

        var restMonth = document.querySelector('.rest-month');

        var restDate = document.querySelector('.rest-date');

        var restHour = document.querySelector('.rest-hour');

        var restMinute = document.querySelector('.rest-minute');

        var restSecond = document.querySelector('.rest-second');

        function formDate(date) {

            var y = date.getFullYear(); //2026

            var m = date.getMonth() + 1; //5

            var d = date.getDate(); //5

            // 补充0

            if(m < 10) m = "0" + m;

            if(d < 10) d = "0" + d;

            // 加-

            return `${y}-${m}-${d}`;

        }

        function changCount(date){

            var now = new Date(); //当前时间

            toDate.innerHTML = formDate(date);

            // 求两个时间之间的差“毫秒数”

            var ms = date.getTime() - now.getTime();

            // 一年有多少毫秒

            var yms = 365.5 * 24 * 60 * 60 * 1000;

            // 求出剩余的年数

            var ry = Math.floor(ms / yms);

            // 求月

            var mms = 30 * 24 * 60 * 60 * 1000;

            var rm = Math.floor(ms % yms / mms);

            // 求天

            var dms =  24 * 60 * 60 * 1000;

            var rd = Math.floor(ms % yms % mms / dms);

            // 时分秒

            var hms = 60 * 60 * 1000;

            var rh =  Math.floor(ms % yms % mms % dms / hms);

            var minms = 60 * 1000;

            var rMin =  Math.floor(ms % yms % mms % dms % hms / minms);

            var rs =  Math.floor(ms % yms % mms % dms % hms % minms / 1000);

            // 渲染

            restYear.textContent = ry;

            restMonth.textContent = rm;

            restDate.textContent = rd;

            restHour.textContent = rh;

            restMinute.textContent = rMin;

            restSecond.textContent = rs;

        }

        var tDate = new Date(2026,04,05,13,24,59); //目标时间

        changCount(tDate); //初始解析渲染时间

        var timer = setInterval(function () {  

            changCount(tDate);

        },1000);

        window.onunload = function () {

            clearInterval(timer);

        }

    </script>

</body>

</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值