如何在给定时间和日期运行函数?
示例:我有一个函数需要在每月 12 日上午 10 点运行。
如果这很重要,此页面将 24/7 运行。
显然我必须与当前日期进行比较,但我不确定如何检查当前日期和时间是否匹配。
Shannon
不建议使用setInterval
因为它具有非确定性行为 - 事件可能会被错过,或者同时触发。时间也会变得不同步。
下面的代码改为使用setTimeout
with a 等一下期间,计时器每分钟重新同步一次,以便尽可能接近 hh:mm:00.000s 点。
function surprise(cb) {
(function loop() {
var now = new Date();
if (now.getDate() === 12 && now.getHours() === 12 && now.getMinutes() === 0) {
cb();
}
now = new Date(); // allow for time passing
var delay = 60000 - (now % 60000); // exact ms to next minute interval
setTimeout(loop, delay);
})();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)