node.js - 无法删除具有指定时间戳的消息
问题描述
嗨,我无法删除在特定时间发布在频道中的消息。我正在检查消息时间戳并将其与 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 天或更早的消息。帮助表示赞赏
解决方案
您需要将消息的时间与 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)
}
推荐阅读
- r - R基础管道进入`do.call`
- python - 如何停止python中的内存错误以进行pdf转换?
- snowpack - 我有雪包:未捕获的类型错误:styled_components_1.default 不是函数
- google-sheets - 从 Google 表格行创建 Google 日历活动
- php - RainTPL {loop} 只显示数组的最后一个索引
- visual-studio-code - 在 VS Code 中,如何将终端带到代码编辑器部分(无需调整终端大小)?“终端编辑器”
- javascript - 使自定义光标转换在 Safari 中工作
- gradle - 如何配置 sonar.junit.reportPaths
- python - 如何将 .txt 文件中的特定单词作为字符串变量导入 Python?
- php - 如何使用php正则表达式