js网页实时倒计时精确到秒级


要实现一个网页上的实时倒计时,精确到秒级,我们可以使用JavaScript的`setInterval`函数来定时更新页面上的显示。下面是一个简单的实现示例:


<!DOCTYPE html>
<html>
<head>
    <title>实时倒计时</title>
    <script>
        function startCountdown(targetDate) {
            // 设置目标日期为未来的某个时间(示例中为当前时间后1分钟)
            // 注意:为了演示,这里使用了静态时间,实际使用中可能需要根据用户输入或服务器时间设置
            // targetDate = new Date("2024-09-13T11:07:55").getTime(); // 示例时间,请根据需要修改

            // 假设我们直接在当前时间基础上增加60秒作为目标时间
            targetDate = new Date().getTime() + 60000;

            var x = setInterval(function() {
                // 获取当前时间
                var now = new Date().getTime();
                
                // 计算距离目标时间的差值
                var distance = targetDate - now;
                
                // 时间计算
                var days = Math.floor(distance / (1000 * 60 * 60 * 24));
                var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
                var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
                var seconds = Math.floor((distance % (1000 * 60)) / 1000);
                
                // 如果天、小时、分钟都为0,则只显示秒
                if (days < 1 && hours < 1 && minutes < 1) {
                    document.getElementById("countdown").innerHTML = seconds + " 秒";
                } else {
                    // 否则,按照天、小时、分钟、秒的格式显示
                    document.getElementById("countdown").innerHTML = days + "天 " + hours + "小时 "
                    + minutes + "分钟 " + seconds + " 秒 ";
                }
                
                // 如果倒计时结束,写一些代码来处理结束情况
                if (distance < 0) {
                    clearInterval(x);
                    document.getElementById("countdown").innerHTML = "倒计时结束!";
                }
            }, 1000);
        }

        // 当文档加载完成时,启动倒计时
        window.onload = function() {
            startCountdown();
        };
    </script>
</head>
<body>

<div id="countdown"></div>

</body>
</html>

请注意,在上面的代码中,我注释掉了直接设置目标时间`targetDate`的部分,而是使用了当前时间加上60秒作为示例。在实际应用中,您可能需要根据用户的输入或服务器返回的时间来设置这个目标时间。

此外,请确保将JavaScript代码放在`