ie无法识别getTime()怎么办

只做了一个倒计时 但是ie无法识别getTime()从而无法获取当前的毫秒数,使用

Date.parse(date.replace(/-/g,"/"))

会出现以下错误

图片说明

下面是我的全部代码

<div id="count_down">
    <div class="scene">14:00场</div>
    <img src="images/purchase/index.png">
    <div class="desc">距离结束还有</div>
    <div class="time">
        <span class="se_txt">00</span>
        <i>:</i>
        <span class="se_txt">00</span>
        <i>:</i>
        <span class="se_txt">00</span>
    </div>
</div>
$(function(){
    var oDate = new Date();
    var nowTime = oDate.getTime(); //现在的毫秒数
    oDate.setDate(oDate.getDate()); // 获取当天日期
    var targetDate = new Date(oDate.toLocaleDateString()); //将当天日期转换成字符串
    run(targetDate);
});

    function run(enddate) {
        getDate(enddate);   //立即运行一次当前时间倒计时
        setInterval("getDate('" + enddate + "')", 500);  //然后每隔500毫秒运行一次倒计时
    }

    function getDate(enddate) {
        var oDate = new Date(); //获取日期对象
        var nowTime = oDate.getTime(); //现在的毫秒数
        var enddate = new Date(enddate);  
        var targetTime = enddate.getTime(); // 当天时间的毫秒数
        var targetHoour = Math.floor((nowTime - targetTime) / 1000); //一天中过了多少毫秒
        if (targetHoour >= 28800){  //8点到14点
            var second = Math.floor((targetTime + 50400000 - nowTime) / 1000);
            $(".scene").html("8:00场");
        }
        if (targetHoour >= 50400){  //14点到20点
            var second = Math.floor((targetTime + 72000000 - nowTime) / 1000);
            $(".scene").html("14:00场");
        }
        if (targetHoour >= 72000){  //20点到24点
            var second = Math.floor((targetTime + 86400000 - nowTime) / 1000);
            $(".scene").html("20:00场");
        }
        if (targetHoour < 28800){   //24点到8点
            var second = Math.floor((targetTime + 28800000 - nowTime) / 1000);
            $(".scene").html("00:00场");
        }
        var day = Math.floor(second / 24 * 60 * 60); //整数部分代表的是天;一天有24*60*60=86400秒 ;
        second %= 86400; //余数代表剩下的秒数;
        var hour = Math.floor(second / 3600); //整数部分代表小时;
        second %= 3600; //余数代表 剩下的秒数;
        var minute = Math.floor(second / 60);
        second %= 60;
        var spanH = $('.se_txt')[0];
        var spanM = $('.se_txt')[1];
        var spanS = $('.se_txt')[2];

        spanH.innerHTML = tow(hour);
        spanM.innerHTML = tow(minute);
        spanS.innerHTML = tow(second);
    }

    function tow(n) {
        return n >= 0 && n < 10 ? '0' + n : '' + n;
    }

我写了个方法,这是在IE运行效果你可以根据你的展示方式,改变一下

图片说明


    <div id="demo"></div>



    //js

    var timer = setInterval(function() {

        getDistanceTime('2019-08-16 18:07:00', 'demo');

        if (document.getElementById('demo').innerHTML === '') {

            window.clearInterval(timer)

        }

    }, 1000);


        /**
     * time:倒计时结束时间(例如:'2019-08-17 18:15:00')
     * DOMId:倒计时所在DOM元素的ID;
    */
    function getDistanceTime(time, DOMId) {

        var t1 = new Date(time.replace(/-/g, "/"));

        var t2 = new Date();

        var days = t1.getTime() - t2.getTime();

        var day = parseInt(days / (1000 * 60 * 60 * 24));

        var hour = parseInt((days - day * 1000 * 60 * 60 * 24) / (1000 * 60 * 60));

        var min = parseInt((days - day * 1000 * 60 * 60 * 24 - hour * 1000 * 60 * 60) / (1000 * 60));

        var s = parseInt((days - day * 1000 * 60 * 60 * 24 - hour * 1000 * 60 * 60 - min * 1000 * 60) / (1000));

        min = min < 10 ? '0' + min : min;

        s = s < 10 ? '0' + s : s;

        var html = '';

        html += "<span>距离活动开始:</span>" +

            " <i>" + day + "</i>" +

            " <span>天</span>" +

            " <i>" + hour + "</i>" +

            " <span>小时</span>" +

            " <i>" + min + "</i>" +

            " <span>分</span>" +

            " <i>" + s + "</i>" +

            " <span>秒</span>";

        if (days > 0) {

            document.getElementById(DOMId).innerHTML = html;

        } else {

            document.getElementById(DOMId).innerHTML = '';

        }

    }

ie 可以识别的 你的时间格式不对 如果是yyyy-mm-dd getTime()是NaN 要把时间格式改成yyyy/mm/dd