如何在javascript中的特定时间频繁运行function()

时间:2017-01-19 07:21:05

标签: javascript timeout

我有一个使用setTimeout()每24小时运行3分钟的函数。问题是它从一个月最多请求的API中获取数据。我想尽可能多地运行它,但由于浪费请求,我不需要这样做。另外如何只在例如06:30:00和20:00:00之间运行我的脚本?

2 个答案:

答案 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,这是在这些时间下进行的,并且执行得非常好。

&#13;
&#13;
// 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;
&#13;
&#13;