Moment js以分钟为单位比较差异



我有一个关于Moment js的问题。我有一个聊天窗口,需要比较currentMessage.dateCreatedpreviousMessage.dateCreated过15分钟,我需要添加标志/标签->如果(分钟>15({flag=true}(。

我应该如何将聊天消息中的分钟数与dateCreated(非硬编码(的不同值进行比较?谢谢你的回答!!!

let currentMessage = moment
.utc(conversationMessages[this.index].createdDate)
.local()
.format("D/MM/YYYY HH:mm:ss"); // returns "8/10/2020 14:08:28"
let previousMessage = moment
.utc(conversationMessages[this.index - 1].createdDate)
.local()
.format("D/MM/YYYY HH:mm:ss"); // returns "8/10/2020 13:06:31"

万一有人正在寻找一种解决方案,在不使用Momentjs的情况下实现同样的目标(现在正式处于遗留模式(:

// Set two date objects 30 minutes apart
const [currentMessage,previousMessage] = [new Date(), new Date()]
previousMessage.setMinutes(previousMessage.getMinutes() - 30 )
// Get difference by subtracting milliseconds and converting to minutes
const diffInMinutes = (currentMessage.getTime()- previousMessage.getTime())/60000
console.log('difference is:',diffInMinutes)

使用加减

let currentMessage = moment
.utc(conversationMessages[this.index].createdDate)

let previousMessage = moment
.utc(conversationMessages[this.index - 1].createdDate)
if( currentMessage > previousMessage.add(15, 'minutes') ) {
// do your thing
}

让我们这样说:

var currentMessage = moment(new Date()); //todays time
var previousMessage = moment("2018-12-1"); // another time
var duration = moment.duration(currentMessage.diff(previousMessage));
var days = duration.asDays(); // you can choose days, minutes or whatever you need

请注意,在减法之前不要格式化它们,在减法之后,您可以使用您的逻辑for flag,也可以将其用作标记标签的函数。我希望这对你有帮助。

最新更新