我有一个使用setTimeout()每24小时运行3分钟的函数。问题是它从一个月最多请求的API中获取数据。我想尽可能多地运行它,但由于浪费请求,我不需要这样做。另外如何只在例如06:30:00和20:00:00之间运行我的脚本?
答案 0 :(得分:1)
您需要 setTimeout 和 Date()才能实现此目的: 例如。
var now = new Date();
var millisTill10 = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 10, 0, 0, 0) - now;
if (millisTill10 < 0) {
millisTill10 += 86400000; // it's after 10am, try 10am tomorrow.
}
setTimeout(function(){alert("It's 10am!")}, millisTill10);
有关详细信息,请关注this
答案 1 :(得分:0)
我已经测试并验证了以下代码。我的时间是下午7:22,这是在这些时间下进行的,并且执行得非常好。
// get todays strict timings
// 06:30:00 and 20:00:00
setInterval(function() {
lowerDate = new Date();
lowerDate.setHours(6);
lowerDate.setMinutes(30);
lowerDate.setSeconds(0);
upperDate = new Date();
upperDate.setHours(20);
upperDate.setMinutes(0);
upperDate.setSeconds(0);
todayDate = new Date();
if (todayDate > lowerDate && todayDate < upperDate)
console.log("execute"); // execute only if in between these times
}, 3 * 60 * 1000) //Every 3 minutes
&#13;