首页 > 解决方案 > 无法删除具有指定时间戳的消息

问题描述

嗨,我无法删除在特定时间发布在频道中的消息。我正在检查消息时间戳并将其与 moment.js 模块进行比较,但是当我运行我的代码时,它不会在我想要的持续时间内删除消息,而不是删除任何获取的消息。

所以我被困在这一点上。

这是我的代码:

await channel.messages.fetch({limit: 100 })
        .then(messages => {
            messages.forEach(m => {
                let time = moment.utc(m.createdTimestamp).subtract( 7, 'days'); 
                if (time) {
                    channel.bulkDelete(10)
                } 

目标是我想删除 7 天或更早的消息。帮助表示赞赏

标签: node.jsdiscord.jsmomentjs

解决方案


您需要将消息的时间与 7 天前的时间进行比较。7 天前的时间(以毫秒为单位)可以通过 计算moment().subtract(7, 'days')。我们将比较毫秒,如果消息超过 7 天,则以毫秒为单位的值将小于 7 天前的值。

let time = moment.utc(m.createdTimestamp).subtract( 7, 'days');
if (time.milliseconds() < moment().subtract(7, 'days').milliseconds()) {
  channel.bulkDelete(10)
}

推荐阅读