moment.js - test if a date is today, yesterday, within a week or two weeks ago
Here's something that can be useful:
var REFERENCE = moment("2015-06-05"); // fixed just for testing, use moment();
var TODAY = REFERENCE.clone().startOf('day');
var YESTERDAY = REFERENCE.clone().subtract(1, 'days').startOf('day');
var A_WEEK_OLD = REFERENCE.clone().subtract(7, 'days').startOf('day');
function isToday(momentDate) {
return momentDate.isSame(TODAY, 'd');
}
function isYesterday(momentDate) {
return momentDate.isSame(YESTERDAY, 'd');
}
function isWithinAWeek(momentDate) {
return momentDate.isAfter(A_WEEK_OLD);
}
function isTwoWeeksOrMore(momentDate) {
return !isWithinAWeek(momentDate);
}
console.log("is it today? ..................Should be true: "+isToday(moment("2015-06-05")));
console.log("is it yesterday? ..............Should be true: "+isYesterday(moment("2015-06-04")));
console.log("is it within a week? ..........Should be true: "+isWithinAWeek(moment("2015-06-03")));
console.log("is it within a week? ..........Should be false: "+isWithinAWeek(moment("2015-05-29")));
console.log("is it two weeks older or more? Should be false: "+isTwoWeeksOrMore(moment("2015-05-30")));
console.log("is it two weeks older or more? Should be true: "+isTwoWeeksOrMore(moment("2015-05-29")));
Check a JSFiddle demo with more tests, so you can tweak for your exact case, if needed.
Simplest Solution for Today :
const result = moment(date).isSame(moment(), "day")
Simplest Solution for Yesterday :
const result = moment(date).isSame(moment().subtract(1, 'day'), "day")
More precise answer as follows
var today = moment();
var yesterday = moment().subtract(1, 'day');
var engagementDate = (Date to be compare);
if(moment(engagementDate).isSame(today, 'day'))
console.log('Today');
else if(moment(engagementDate).isSame(yesterday, 'day'))
console.log('Yesterday');