鍍金池/ 問(wèn)答/HTML5  HTML/ 調(diào)用函數(shù),為什么時(shí)間還是不動(dòng)的

調(diào)用函數(shù),為什么時(shí)間還是不動(dòng)的

代碼:
<script type="text/javascript">

        $(document).ready(function() {
            
            givetime();
        })
        
        var endtimes = new Array(); //結(jié)束時(shí)間
        var myDate;
        var time_end;
        function givetime() {
            var int_day, int_hour, int_minute, int_second;
            endtimes[0] = $("#activity_time1").val();
            endtimes[1] = $("#activity_time2").val();
            myDate = new Date().getTime(); //獲取當(dāng)前時(shí)間
            window.setTimeout("DownCount()", 1000);
        }

        function DownCount() {
            
            for(var i = 0; i < 2; i++) {
                var time_distance;
                time_end = new Date(endtimes[i]).getTime();
                time_end = time_end++;
                time_distance = time_end - myDate; // 結(jié)束時(shí)間減去當(dāng)前時(shí)間
                if(time_distance <= 0) {
                    $("#Group_time"+i).html("限購(gòu)時(shí)間:搶購(gòu)已結(jié)束");
                    
                } else {
                    timechange(time_distance, i);
        
                }
            }
            window.setTimeout("DownCount()", 1000);
        }

        function timechange(time_distance, i) {
            
            int_day = Math.floor(time_distance / 86400000) //計(jì)算有多少天,向下取整
            time_distance -= int_day * 86400000; //間隔時(shí)間減去天數(shù)
            int_hour = Math.floor(time_distance / 3600000) //計(jì)算剩余時(shí)間含有多少小時(shí),向下取整
            time_distance -= int_hour * 3600000; //再減去整數(shù)小時(shí)
            int_minute = Math.floor(time_distance / 60000) //計(jì)算剩余時(shí)間含有多少分鐘,向下取整
            time_distance -= int_minute * 60000; //再減去整數(shù)分鐘
            int_second = Math.floor(time_distance / 1000) //計(jì)算剩余時(shí)間含有多少秒
            // 時(shí)分秒為單數(shù)時(shí)、前面加零站位
            if(int_hour < 10){
                int_hour = "0" + int_hour;
            }
            if(int_minute < 10){
                int_minute = "0" + int_minute;
            }                
            if(int_second < 10){
                int_second = "0" + int_second;
            }                
            $("#Group_time" + i).html("<em></em>&nbsp;距離結(jié)束還有" + int_day + "天" + int_hour + "小時(shí)" +int_minute + "分" + int_second + "秒");
        }
    </script>

clipboard.png
時(shí)間一直是靜態(tài)的,實(shí)現(xiàn)效果是動(dòng)態(tài)的。現(xiàn)在問(wèn)題是不動(dòng)

回答
編輯回答
氕氘氚

$(document).ready(function() {

            givetime();
        })
        
        var endtimes = new Array(); //結(jié)束時(shí)間
        function givetime() {
            endtimes[0] = $("#activity_time0").val();
            endtimes[1] = $("#activity_time1").val();
            
            window.setTimeout("DownCount()", 1000);
        }

        function DownCount() {
            
            for(var i = 0; i < 2; i++) {
                var time_distance;
                var time_end = new Date(endtimes[i]).getTime();
                var myDate = new Date().getTime(); //獲取當(dāng)前時(shí)間
                time_distance = time_end - myDate; // 結(jié)束時(shí)間減去當(dāng)前時(shí)間
                if(time_distance <= 0) {
                    $("#activity_time"+i+" a").removeClass("buy_button");
                    /*alert("#activity_time"+i+" a");*/
                    $("#Group_time"+i).html("限購(gòu)時(shí)間:搶購(gòu)已結(jié)束");
                } else {
                    timechange(time_distance, i);
                }
            }
            window.setTimeout("DownCount()", 1000);
        }

        function timechange(time_distance, i) {
            
            var int_day = Math.floor(time_distance / 86400000) //計(jì)算有多少天,向下取整
            time_distance -= int_day * 86400000; //間隔時(shí)間減去天數(shù)
            var int_hour = Math.floor(time_distance / 3600000) //計(jì)算剩余時(shí)間含有多少小時(shí),向下取整
            time_distance -= int_hour * 3600000; //再減去整數(shù)小時(shí)
            var int_minute = Math.floor(time_distance / 60000) //計(jì)算剩余時(shí)間含有多少分鐘,向下取整
            time_distance -= int_minute * 60000; //再減去整數(shù)分鐘
            var int_second = Math.floor(time_distance / 1000) //計(jì)算剩余時(shí)間含有多少秒
            // 時(shí)分秒為單數(shù)時(shí)、前面加零站位
            if(int_hour < 10){
                int_hour = "0" + int_hour;
            }
            if(int_minute < 10){
                int_minute = "0" + int_minute;
            }                
            if(int_second < 10){
                int_second = "0" + int_second;
            }                
            $("#Group_time" + i).html("<em></em>&nbsp;距離結(jié)束還有" + int_day + "天" + int_hour + "小時(shí)" +int_minute + "分" + int_second + "秒");
        }

原因是var myDate = new Date().getTime(); //獲取當(dāng)前時(shí)間
這句代碼的位置問(wèn)題
因?yàn)樾枰獙?shí)時(shí)獲取當(dāng)前時(shí)間去與結(jié)束時(shí)間作比較,計(jì)算,如果時(shí)間一直是不變的,值就不變,因?yàn)榻Y(jié)束時(shí)間也是不變的,固定值

2017年8月26日 04:41
編輯回答
乖乖噠
time_end = new Date(endtimes[i]).getTime();
//這個(gè)獲取的是毫秒
            time_end = time_end++;
            //加1毫秒;time_end+= 1000;
            

1秒加已毫秒,肯定不動(dòng)啊啊。。
看看是不是這個(gè)問(wèn)題

2017年4月3日 20:02