JavaScript:如何每隔一小时做某事? [英] JavaScript: How to do something every full hour?
本文介绍了JavaScript:如何每隔一小时做某事?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想每小时执行一些 JS 代码.但是我不能用
I want to execute some JS code every hour. But I can't use
setInterval("javascript function",60*60*1000);
因为我想每隔一个小时做一次,我的意思是在 1:00、2:00、3:00 等等.我正在考虑类似的事情
because I want to do it every full hour, I mean in 1:00, in 2:00, in 3:00 and so on. I am thinking about something like
var d;
while(true) {
d = new Date();
if ((d.getMinutes() == '00') && (d.getSeconds() == '00')){
// my code here
}
}
但是速度太慢,效果不佳.
but it's too slow and it doesn't work well.
感谢您的任何想法
推荐答案
我会找出现在几点,弄清楚距离下一个完整小时还有多久,然后等待那么长时间.所以,
I would find out what time it is now, figure out how long it is until the next full hour, then wait that long. So,
function doSomething() {
var d = new Date(),
h = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours() + 1, 0, 0, 0),
e = h - d;
if (e > 100) { // some arbitrary time period
window.setTimeout(doSomething, e);
}
// your code
}
检查e >100
只是为了确保您不会在 5 毫秒之类的时间里执行 setTimeout
并陷入疯狂循环.
The check for e > 100
is just to make sure you don't do setTimeout
on something like 5 ms and get in a crazy loop.
这篇关于JavaScript:如何每隔一小时做某事?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文