【问题标题】:How Can I run code hourly using JS?如何使用 JS 每小时运行代码?
【发布时间】:2017-06-05 01:41:53
【问题描述】:

我做了类似的事情

setInterval(function() {
   console.log("!");
   }, 1000 * 60 * 60);

我想每小时运行一次console.log,但代码不像我想要的那样工作。

假设我在 1:30 运行代码,那么它将在 2:30 运行 console.log。但我想做的是每小时运行一次代码。比如 1:00、2:00、3:00。

有没有办法做到这一点?谢谢!

【问题讨论】:

标签: javascript node.js momentjs


【解决方案1】:

应该这样做:

let millisPerHour = 60 * 60 * 1000; // use 5 * 1000 (every 5 seconds) for testing
let millisPastTheHour = Date.now() % millisPerHour;
let millisToTheHour = millisPerHour - millisPastTheHour;

let fn = function() {
  console.log("Running at " + new Date());
}

setTimeout(function() {
  fn();
  
  setInterval(function() {
    fn();
  }, millisPerHour);
}, millisToTheHour);

我正在使用setTimeout()setInterval() 的组合。首先我计算下一个小时之前的毫秒数 (millisToTheHour),然后我使用超时来执行函数并开始一个间隔,该间隔将保持每小时执行一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 2020-10-28
    • 2011-04-22
    • 2012-08-28
    • 1970-01-01
    • 2017-05-02
    • 2021-03-02
    • 2021-12-12
    相关资源
    最近更新 更多