0

所以我的问题是我想在某个小时内使用不和谐的机器人发送一些东西。然后我有 luxon,我已经完成了所有代码,但看起来 luxon 在我执行代码时获取了日期,例如,如果它是 2021-01-29-03-20-11 (YY-MM-DD-HH- mm-SS) 并且我想在 2021-01-29-03-21-11 (YY-MM-DD-HH-mm-SS) 时执行某些操作,那么我应该在那一刻执行代码,我在不重新执行代码的情况下无法更新或找不到更新日期的方法。

我试图将我声明新日期的 var 设置为一个间隔,但没有奏效:

const timeDateInterval = setInterval(() => {
    let interval = DateTime.local().setZone('America/Bogota').toFormat('HHmmss');
    return interval;
}, 1000);

然后我会控制台记录它:

console.log(timeDateInterval);

我得到一个超时错误(或者我认为这是一个错误):

    Timeout {
  _idleTimeout: 1000,
  _idlePrev: [TimersList],
  _idleNext: [TimersList],
  _idleStart: 91,
  _onTimeout: [Function (anonymous)],
  _timerArgs: undefined,
  _repeat: 1000,
  _destroyed: false,
  [Symbol(refed)]: true,
  [Symbol(kHasPrimitive)]: false,
  [Symbol(asyncId)]: 7,
  [Symbol(triggerId)]: 0
}

那么有没有办法在不重新执行代码的情况下获取和更新 luxon 中的日期?或者一些如何重新执行代码但不关闭不和谐机器人?

4

1 回答 1

0

您设置的“间隔”只是一个日期。我不认为那是你想要的。您需要计算间隔的持续时间。Luxon 可以为您计算间隔,但您的问题表明您只需要 1 分钟,即 60*1000。此外,setInterval 回调没有返回值。它实际上需要做一些事情(大概是发送一个不和谐的消息)。这是使用 setInterval 帮助您入门的一个非常基本的示例。一旦你看到它是如何工作的,你可以在你说你想要的 1 分钟内将 1000 替换为 60*1000。

const timeDateInterval = setInterval(() => {
    const time = new Date;
    console.log(time.toString());
}, 1000);

于 2021-06-03T23:26:57.357 回答