实现倒计时

1.设置剩余时间(时、分、秒)

<!DOCTYPE html>
<html>

<head>
    <title>test</title>
    <style>
        #main {
            width: 40%;
            min-width: 250px;
            margin: 0 auto;
            height: 80px;
            background-color: #000;
            color: #FFF;
            font-size: 2em;
            line-height: 80px;
            text-align: center
        }

        div#form {
            width: 400px;
            margin: 0 auto;
            margin-bottom: 30px
        }

        input[type="text"] {
            width: 50px
        }
    </style>
</head>

<body>
    <div id="form">
        <input type="text" id="hour"><input type="text" id="min"><input type="text" id="s"><button id="start">开始计时</button>
    </div>
    <div id="main">

        <span id="time"></span>
    </div>
    <script>
        document.getElementById("start").onclick = function() {
            var hour = document.getElementById('hour').value;
            var min = document.getElementById('min').value;
            var s = document.getElementById('s').value;
            // var ms = document.getElementById('ms').value;
            countdown(hour, min, s);

        };
        // countdown("1", "1", "10");

        function countdown(hour, min, s) {
            if (s > 0) {
                s = String(Number(s) - 1);
            } else {
                //s==0
                if (min > 0) {
                    min = String(Number(min) - 1);
                    s = 59;
                } else {
                    // min==0
                    if (hour == 0) {
                        timeout = null;
                        alert("到点啦");
                    } else {
                        hour = String(Number(hour) - 1);
                        min = 59;
                        s = 59;
                    }
                }

            }
            var str = format(hour) + ":" + format(min) + ":" + format(s);
            console.log(str);
            document.getElementById("time").innerText = str;
            var timeout = setTimeout(function() {
                countdown(hour, min, s);
            }, 1000);
        }

        //格式化时间
        function format(str) {
            if (String(str).length == 1) {
                return "0" + str;
            } else if (String(str).length == 2) {
                return str;
            }
        }
    </script>
</body>

</html>

这里写图片描述
这里写图片描述

2.设置截止时间(天、时、分、秒)

<!DOCTYPE html>
<html>

<head>
    <title>test</title>
    <style>
        div#form {
            width: 420px;
            margin: 0 auto;
            margin-bottom: 30px
        }

        input[type="text"] {
            width: 50px
        }

        #main {
            width: 60%;
            min-width: 250px;
            margin: 0 auto;
            height: 80px;
            background-color: #000;
            color: #FFF;
            font-size: 2em;
            line-height: 80px;
            text-align: center
        }
    </style>
</head>

<body>
    <div id="form">
        <label>截止时间:</label><br>
        <input type="text" id="year">&nbsp;年
        <input type="text" id="mon">&nbsp;月
        <input type="text" id="day">&nbsp;日
        <br>
        <input type="text" id="hour">&nbsp;时
        <input type="text" id="min">&nbsp;分
        <input type="text" id="s">&nbsp;秒
        <button id="start">开始倒计时</button>
    </div>
    <div id="main">
        <span id="time"></span>
    </div>
    <script>
        document.getElementById("start").onclick = function() {
            var year = document.getElementById('year').value;
            var mon = document.getElementById('mon').value;
            var day = document.getElementById('day').value;
            var hour = document.getElementById('hour').value;
            var min = document.getElementById('min').value;
            var s = document.getElementById('s').value;
            countdown(year, mon, day, hour, min, s);

        };

        function countdown(year, mon, day, hour, min, s) {
            var nowDate = new Date();
            var endDate = new Date(year, mon - 1, day, hour, min, s);
            // 转换成和nowTime的格式相同(!注意:获取月是从0开始,因此写月份要减1)
            var t = Math.round((endDate - nowDate) / 1000);
            // console.log(t);
            var DAY = Math.round(t / (60 * 60 * 24));
            var HOUR = Math.round((t % (60 * 60 * 24)) / 3600);
            var MIN = Math.round((t % (60 * 60)) / 60);
            var SCD = Math.round(t % 60);
            if (t == 0) {
                alert("到点啦")
            } else {
                var str = format(DAY) + "天" + format(HOUR) + "时" + format(MIN) + "分" + format(SCD) + "秒";
                document.getElementById("time").innerText = str;
                setTimeout(function() {
                    countdown(year, mon, day, hour, min, s);
                }, 1000);
            }
        }
        //格式化时间
        function format(str) {
            if (String(str).length == 1) {
                return "0" + str;
            } else if (String(str).length == 2) {
                return str;
            }
        }
    </script>
</body>

</html>

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值