如何像其他赠品机器人一样在我的机器人中添加计时器?

How do I add timer in my bot like the other giveaway bots?

我想要的是我的 bot 赠品嵌入消息中的计时器,当 bot 关闭时它可以正常工作,并且计时器仍会自行更新而不显示消息已被编辑。

所以我只是展示我在嵌入中所做的事情:

   const embed = new MessageEmbed();
   embed.setAuthor({
        name: `${message.guild.name} GiveAways!`,
        iconURL: `${message.guild.iconURL({ dynamic: true })}`
   });
   embed.setThumbnail(`${message.guild.iconURL({ dynamic: true })}`);
   embed.setTitle(`${title.toUpperCase()}`);
   embed.setColor("BLURPLE");
   embed.setDescription(
      `
      **React With  To Enter!**
      **Ends In: ${time} ${}!**
      **Hosted By: ${message.author}!**
      `
   );
   embed.setFooter({
       text: `${winnerCount.toString().slice(0, -1)} Winners | Ends`
   });
   embed.setTimestamp(Date.now() + ms(duration));

   const sentGiveaway = await channel.send({
      content: "||@everyone|| **   GIVEAWAY   **",
      embeds: [embed]
   });
   sentGiveaway.react("");

title - 这提供了赠品的标题。 time - 这会将用户输入的持续时间转换为全名。例如:4d => 4 天。 winnerCount - 这提供了多少获胜者将赢得赠品。 duration - 这需要来自用户的参数。 Date.now + ms(duration) - 这提供了赠品结束的确切时间。

我的嵌入在做什么 - 这是我提供持续时间和内容的赠品嵌入,embed.setTimestamp() 没有做我想做的,它只是告诉赠品何时结束。 (我没有提供完整的代码,因为有些人告诉我不要粘贴完整的代码)

我想要什么 - 我想要在可变时间旁边的描述中,我想要一个自动时间更新,人们可以发送,机器人可以发送,但我不知道该怎么做,我已经看到许多机器人在消息中发送计时器。

This the thing I am talking about, check the highlighted thing you will see that this thing update itself when the bot is switched off. (Click the link to see the image)

参考unix timestamps.

他们使用而不是毫秒,所以你需要在处理毫秒时做必要的除法(除以1000 & Math.floor())

例如:

const timestamp = new Date().getTime() + 600000 // (in 10 minutes)
const timestampInSecs = Math.floor(timestamp / 1000); // Necessary division

// Choose appropriate formatting option - the one GiveawayBot uses is R
const timestampString = `<t:${timestampInSecs}:R>`;