Sha*_*ins 4 javascript time jquery date
如何在给定的时间和日期运行函数.
例如,我有一个功能,在每个月的12号上午10点,我有一个惊喜,我想告诉他们这个.我怎样才能始终运行此功能,但仅在此时执行?
正如所指出的那样,这个页面将全天候运行,显然这会影响我的答案.
显然我必须与当前日期进行比较,但我不确定如何检查当前日期和时间是否匹配.
香农
Aln*_*tak 11
建议不要使用setInterval它,因为它具有非确定性行为 - 可能会错过事件或立即触发事件.时间也会不同步.
相反setTimeout,下面的代码使用一分钟的时间段,其中每分钟计时器重新同步,以便尽可能接近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);
})();
}
Run Code Online (Sandbox Code Playgroud)
在要进行检查的页面上添加此内容
setInterval(function () {
var date = new Date();
if (date.getDate() === 12 && date.getHours() === 10 && date.getMinutes === 0) {
alert("Surprise!!")
}
}, 1000)
Run Code Online (Sandbox Code Playgroud)
更新 - 添加date.getSeconds == 0限制为在 10:00:00 只触发一次。感谢下面的评论