不和谐 Node.js |将时间添加到嵌入的时间戳 (v12)

Discord Node.js | Adding time onto a timestamp in an embed (v12)

我有一个问题,所以我知道要将时间戳添加到 New Discord.MessageEmbed() 你会使用 .setTimestamp(),但是,我想知道我将如何为它添加 x 时间量时间戳,即如果我的 args[1] 是“12hr”(12 小时),我如何让时间戳显示比查看消息的人提前 12 小时的时间?

基本上,我正在创建一个赠品型机器人,供个人使用,我希望页脚显示结束日期。

不和谐 Node.js

假设您有 let timeAdded = 12h;。有 ms 包用于将其转换为以毫秒为单位的时间。

此外,请注意 .setTimestamp() 方法具有可选参数 timestamp,默认为 Date.now()

如果您连接所有这些信息,您将获得:

const ms = require('ms');
let timeAdded = '12h';
const NewEmbed = new Discord.MessageEmbed()
.setTimestamp(Date.now() + ms(timeAdded));

就是这样!当然 timeAdded 必须来自您的 args 字符串,或者以某种方式从消息中获取,但您明白了。

你是这样实现的:

.setTimeStamp() + (<hours you want to add> * 60 * 60 * 1000);

它不是很漂亮,但它是一个快速的解决方案。

或者

您可以创建一个新的 Date and pass it as parameter to the .setTimeStamp() 函数,因为它可以采用替代方法 parameter

根据 Discord.js docs,函数 .setTimestamp() 可以采用可选输入,如果留空则默认输入 Date.now()

我们可以解析您的 args[1] 秒、分、时等,并将它们添加到日期对象,然后将该对象用于 .setTimestamp() 函数。