所以问题是:如何获取日期,消息与当前日期不同(new Date().getDate())? 如果消息是在 15 天前发送的,则年龄将为“15”。
message 是来自 discord 的消息。当使用 message.createdAt 创建消息时,我从消息中获取日期。
这将返回一个时间戳,例如 2021-06-18T19:07:50.057Z
所以我的问题是,我怎样才能得到日期,消息远离 Date.Now
就像“消息是 13
天前发送的”
答案 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