代码运行也不报错,但是秒杀倒计时也出不来

window.onload=function(){ let nowTime = new Date(); let endTime=nowTime.setDate(nowTime.getDate()+5);

img

//把年月日时分秒的时间转换成为毫秒数

//定义变量  天数 小时 分钟  秒数  

//设置定时器  实现一个秒杀效果
var timer = setInterval(qiang,1000);
let button = document.getElementById('buy');

function qiang(){
    // 获取当前系统时间
    
    // 获取当前时间差---nowTime.getTime()现在时间的毫秒数
    var remain = parseInt((endTime-nowTime)/1000);
    
    //判断秒杀是否过期
    if(remain>0){
        //1.计算剩余天数  (除以60*60*24  取整数  获取剩余天数)
        d = parseInt(remain/86400);
        console.log(1)
        //2.计算剩余小时(除以60*60 转换成为小时了  与24进行取模   获取剩余小时)
        h = parseInt((remain/3600) / 24);
        //3.计算剩余分钟(除以60  转换成为分钟了  与60进行取模   获取剩余分钟)
        m = parseInt((remain/60)/  60);
        //4.计算剩余秒数(与60进行取模   获取剩余秒数)
        s = parseInt((remain) / 60);
        button.disabled=true;
        //统一利用两位数 表示 剩余的天、小时、分钟、秒
        d= d < 10 ? '0' + d:d;
        h= h < 10 ? '0' + h:h;
        m= m < 10 ? '0' + m:m;
        s= s < 10 ? '0' + s:s;
        
    }else{
        button.disabled=false;
        // 秒杀过期  取消定时器
        clearInterval(timer);
        d = h = m = s = '00';

        
    }
    //将剩余的天数、小时、分钟、秒  小时到指定网页中去
    document.getElementById("d").innerHTML = d + '天';
    document.getElementById("h").innerHTML = h + '时';
    document.getElementById("m").innerHTML = m + '分';
    document.getElementById("s").innerHTML = s + '秒';
}

}

在你入口函数下调用一下qiang这个方法

可以按照我这个写一下
js文件

window.onload = function(){
     f1();
}

function f1() {
    //现在的时间
    var now1 = new Date();
    //未来的时间
    var now2 = new Date();
    now2.setHours("20");
    now2.setMinutes("15");
    now2.setSeconds("59");
    //时间差
    var time = now1.getTime() - now2.getTime();
    //time = -time;
    if(time < 0) {
        //                总共小时
        var hour = parseInt(time / (60 * 60 * 1000));
        hour = -hour;
        //                取余
        time = time % (60 * 60 * 1000);
        //                拿余数取分钟
        var minute = parseInt(time / (60 * 1000));
        minute = -minute
        //                分钟取余
        time = time % (60 * 1000);
        //                拿分钟取秒
        var seconde = parseInt(time / 1000);
        seconde = -seconde
        document.getElementById("hour").innerText = f2(hour);
        document.getElementById("minute").innerText = f2(minute);
        document.getElementById("seconde").innerText = f2(seconde);
    } else {
        document.getElementById("hour").innerText = "00";
        document.getElementById("minute").innerText = "00";
        document.getElementById("seconde").innerText = "00";
    }
}

function f2(param) {
    if(param <= 9) {
        param = "0" + param
    }
    return param;
}
window.setInterval(function nowDate() {
    f1()
}, 10000);

html文件:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>京东倒计时</title>
        <link rel="stylesheet" type="text/css" href="css/京东倒计时.css" />
        <script src="js/京东倒计时.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <script type="text/javascript">
    </script>
    <body>
        <div id="body">
            <div class="countdown-title">京东秒杀</div>
            <div class="countdown-desc"><strong>20:00</strong>点场 倒计时</div>

            <div id="" class="timmer">
                <span class="unit_hour" id="hour">00</span>
                <span class="one">:</span>
                <span class="unit_minute" id="minute"></span>
                <span class="one">:</span>
                <span class="unit_second" id="seconde"></span>
            </div>

        </div>
    </body>

</html>

你代码逻辑有问题。首先nowTime、endTime没法相减。一个时时间戳,一个时标准时间。其次就是逻辑问题。d,h,m,s始终不变
,


  //把年月日时分秒的时间转换成为毫秒数
    //定义变量  天数 小时 分钟  秒数  
    //设置定时器  实现一个秒杀效果
    let nowTime = new Date(); 
    let endTime=nowTime.setDate(nowTime.getDate()+5);
    var button = document.getElementById('buy');
    var timer = setInterval(() => { qiang(nowTime.getTime()-1000000000, endTime, button) }, 1000);
    function qiang(nowTime, endTime, button) {
        // 获取当前系统时间
        // 获取当前时间差---nowTime.getTime()现在时间的毫秒数
        var remain = parseInt((endTime - nowTime) / 1000);
        console.log(remain)
        //判断秒杀是否过期
        if (remain > 0) {
            //1.计算剩余天数  (除以60*60*24  取整数  获取剩余天数)
            d = parseInt(remain / 86400);
            // console.log(1)
            //2.计算剩余小时(除以60*60 转换成为小时了  与24进行取模   获取剩余小时)
            h = parseInt((remain / 3600) / 24);
            //3.计算剩余分钟(除以60  转换成为分钟了  与60进行取模   获取剩余分钟)
            m = parseInt((remain / 60) / 60);
            //4.计算剩余秒数(与60进行取模   获取剩余秒数)
            s = parseInt((remain) / 60);
            button.disabled = true;
            //统一利用两位数 表示 剩余的天、小时、分钟、秒
            
            d = d < 10 ? '0' + d : d;
            h = h < 10 ? '0' + h : h;
            m = m < 10 ? '0' + m : m;
            s = s < 10 ? '0' + s : s;
        } else {
            button.disabled = false;
            // 秒杀过期  取消定时器
            clearInterval(timer);
            d = h = m = s = '00';

        }
        //将剩余的天数、小时、分钟、秒  小时到指定网页中去
        document.getElementById("d").innerHTML = d + '天';
        document.getElementById("h").innerHTML = h + '时';
        document.getElementById("m").innerHTML = m + '分';
        document.getElementById("s").innerHTML = s + '秒';
    }