I'm using moment.js.
The default for relative past days is "5 days ago"
. But what I want is that if it's within a week ago it should return "5 days ago (Tue)"
. If it's more than a week, I want the regular "5 days ago"
.
The docs say I can supply a function to custom format such a thing:
moment.locale('en', {
relativeTime : {
future: "in %s",
past: "%s ago",
s: "seconds",
m: "a minute",
mm: "%d minutes",
h: "an hour",
hh: "%d hours",
//d: "a day", // this is the default
d: function(num, noSuffix, key, future) { return "a day (" + FOO + ")"; },
//dd: "%d days", // this is the default
dd: function(num, noSuffix, key, future) { return num + "days (" + FOO + ")"; },
M: "a month",
MM: "%d months",
y: "a year",
yy: "%d years"
}
});
The problems are:
- How do I calculate the weekday name for variable
FOO
? - It returns e.g.
5 days (Mon) ago
instead of5 days ago (Mon)
- I want this custom format only if it's <= 7 days (within the last week)
You can't manipulate the relative time format in the way you asked. However, you can simply do the comparison yourself to decide whether or not to append the additional string.