JS中自定义定时器让它在某一时刻执行

时间:2022-04-21 01:19:38

有时,处于需求的原因,我们需要在JS中写一个方法,然后让它在某一时刻执行,即需要在JS中写一个定时器,当时间达到要求时间时,需要执行的方法自动执行,下面小编简单说一下我是怎么实现的

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var tMinutes=0;
var tHours=0;
var go;
function dingshi(hours,minutes){
tHours = hours;
tMinutes = minutes;
go=setInterval(run,3000);
}
function run(){
var date=new Date();
if((date.getMinutes()-tMinutes==0)
&&(date.getHours()-tHours==0)){
clearInterval(go);
getData(); //要执行的方法
}
}
}

在dingshi中的参数hours,minutes是要执行的方法开始的时间,这里只是要求小时和分钟,具体情况下大家可自行添加参数,但要注意修改run方法中if中的判断条件。

getData为要执行的方法,也是根据实际情况自行修改,使用时调用dingshi方法即可。

还有要注意的是为了防止浏览器崩溃,setInterval的第二个参数我定为3000毫秒,即3秒,如果大家定时要求精确到秒,这里应该改成1000,否则可能会错过你设定的时间。