dc bot 检查消息是否早于 X 天 js

时间:2021-07-06 16:44:20

标签: javascript discord

所以问题是:如何获取日期,消息与当前日期不同(new Date().getDate())? 如果消息是在 15 天前发送的,则年龄将为“15”。

message 是来自 discord 的消息。当使用 message.createdAt 创建消息时,我从消息中获取日期。 这将返回一个时间戳,例如 2021-06-18T19:07:50.057Z

所以我的问题是,我怎样才能得到日期,消息远离 Date.Now 就像“消息是 13 天前发送的”

2 个答案:

答案 0 :(得分:2)

您可以将其转换为日期并从中减去当前日期,然后将其计算为天数,如下所示:

const oldDate = new Date('2021-06-18T19:07:50.057Z');
const today = new Date();

const diff = Math.abs(today-oldDate);
const daysBetween = Math.ceil(diff/(1000*3600*24)); //Round up

console.log(daysBetween)

答案 1 :(得分:0)

我使用 Moment.js 进行所有日期计算,而且还没有失败。

CDN:https://cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js

<script src="https://cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js"></script>

let messageDate = '2021-06-18T19:07:50.057Z'

console.log(moment(new Date(messageDate)).fromNow('dd'))
// 18 days

如果您只想返回号码,则:

let messageDateNumber = Number(moment(new Date(messageDate)).fromNow('dd').replace(/[a-z]| /g,''))
    
    console.log('Message was sent ',messageDateNumber,' days ago')
    // Message was sent 18 days ago
相关问题