1. 程式人生 > >javaScript setTimeout()和setInterval()定時器的區別和使用。

javaScript setTimeout()和setInterval()定時器的區別和使用。

用倒計時的例子來解釋兩個的不同的使用

window.onload=function(){
            function getTime1(){
                var box=document.getElementById('box');
                //獲取當前日期和時間
                var xianzai=new Date();
                //指定目標日期和時間
                var zhiding=new Date("2018/9/5 12:00:00");
                //獲取現在的毫秒,返回距 1970 年 1 月 1 日之間的毫秒數。
var a=xianzai.getTime(); //獲取指定的毫秒(返回距 1970 年 1 月 1 日之間的毫秒數。) var b=zhiding.getTime(); //把指定日期的減去現在的 就等於中間距離多長時間 開始毫秒 //所以要轉成秒 var shi=b/1000-a/1000; var h=parseInt(shi/3600);//獲取小時 var
f=parseInt(shi/60)%60;//獲取分鐘 var s=parseInt(shi%60);//獲取秒 if(h<10){//判斷 如果小時小於10則在前面加上字串”0“ 來佔位 h="0"+h; } if(f<10){ f="0"+f; } if(s<10){ s="0"
+s; } var t="距離2018/9/5"+h+'時'+f+'分'+s; o.innerHTML=t; } setTimeout(getTime1,1000)//在1秒後 執行一次 getTime1函式 getTime1(); }

setTimeout() 方法可按照指定的時間來呼叫函式或計算表示式一次

    window.onload=function(){
            function getTime1(){
                var o=document.getElementById('box');
                //獲取當前日期和時間
                var xianzai=new Date();
                //指定目標日期和時間
                var zhiding=new Date("2018/9/5 12:00:00");
                //獲取現在的毫秒,返回距 1970 年 1 月 1 日之間的毫秒數。
                var a=xianzai.getTime();

                //獲取指定的毫秒(返回距 1970 年 1 月 1 日之間的毫秒數。)                
                var b=zhiding.getTime();
                //把指定日期的減去現在的 就等於中間距離多長時間  開始毫秒 
                //所以要轉成秒
                var shi=b/1000-a/1000;
                var h=parseInt(shi/3600);//獲取小時
                var f=parseInt(shi/60)%60;//獲取分鐘
                var s=parseInt(shi%60);//獲取秒
                if(h<10){//判斷 如果小時小於10則在前面加上字串”0“              來佔位
                    h="0"+h;
                }
                if(f<10){
                    f="0"+f;
                }
                if(s<10){
                    s="0"+s;
                }
                var t="距離2018/9/5"+h+'時'+f+'分'+s;
                o.innerHTML=t;
            }
        setInterval(getTime1,1000)//每隔1秒不斷呼叫執行函式
        getTime1();
    }

setInterval() 方法可按照指定的週期(以毫秒計)來呼叫函式或計算表示式。
setInterval() 方法會不停地呼叫函式不斷執行,直到 clearInterval() 被呼叫或視窗被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的引數。