javaScript setTimeout()和setInterval()定時器的區別和使用。
阿新 • • 發佈:2018-12-21
用倒計時的例子來解釋兩個的不同的使用
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() 方法的引數。