1

I have a question about Moment js. I have a chat window and need to compare currentMessage.dateCreated and previousMessage.dateCreated. And if the difference between them is more then 15 minutes, I need to add a Flag/Label -> if(minutes > 15){ flag = true}).

How am I supposed to do compare minutes in chat messages with different values for dateCreated(not hardcoded)? Thank you for your answers!!!

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"

drahil
  • 47
  • 1
  • 8

3 Answers3

2

Just in case somebody is looking for a solution to achieve the same without using Momentjs (which is now officially in legacy mode):

// 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)
Thomas Kuhlmann
  • 943
  • 7
  • 18
1

Lets say something like this:

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

Note that you dont format them before subtraction, after that you can just use your logic for flag or you can just use as a function to flag your labels. I hope that this will help you.

Bozhinovski
  • 2,496
  • 3
  • 20
  • 38
1

Use add or substract

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
}
Tun
  • 1,345
  • 13
  • 34