munch-ease-frontend/src/dateformats.js

25 lines
709 B
JavaScript
Raw Normal View History

2024-10-15 08:46:17 +00:00
function plural(num, unit) {
num = Math.floor(num);
return num + " " + unit + (num === 1 ? "" : "s");
}
2024-10-15 08:40:06 +00:00
export function ago(date) {
const now = new Date();
const diff = now - date;
if (diff < 1000) {
return "just now";
}
if (diff < 60 * 1000) {
2024-10-15 08:46:17 +00:00
return plural(diff / 1000, "second") + " ago";
2024-10-15 08:40:06 +00:00
}
if (diff < 60 * 60 * 1000) {
2024-10-15 08:46:17 +00:00
return plural(diff / (60 * 1000), "minute") + " ago";
2024-10-15 08:40:06 +00:00
}
if (diff < 24 * 60 * 60 * 1000) {
2024-10-15 08:46:17 +00:00
return plural(diff / (60 * 60 * 1000), "hour") + " ago";
2024-10-15 08:40:06 +00:00
}
if (diff < 7 * 24 * 60 * 60 * 1000) {
2024-10-15 08:46:17 +00:00
return plural(diff / (24 * 60 * 60 * 1000), "day") + " ago";
2024-10-15 08:40:06 +00:00
}
return date.toLocaleDateString();
}