a tool for shared writing and social publishing
1export function timeAgo(timestamp: string): string {
2 const now = new Date();
3 const date = new Date(timestamp);
4 const diffMs = now.getTime() - date.getTime();
5 const diffSeconds = Math.floor(diffMs / 1000);
6 const diffMinutes = Math.floor(diffSeconds / 60);
7 const diffHours = Math.floor(diffMinutes / 60);
8 const diffDays = Math.floor(diffHours / 24);
9 const diffYears = Math.floor(diffDays / 365);
10
11 if (diffYears > 0) {
12 return `${diffYears} year${diffYears === 1 ? "" : "s"} ago`;
13 } else if (diffDays > 0) {
14 return `${diffDays} day${diffDays === 1 ? "" : "s"} ago`;
15 } else if (diffHours > 0) {
16 return `${diffHours} hour${diffHours === 1 ? "" : "s"} ago`;
17 } else if (diffMinutes > 0) {
18 return `${diffMinutes} minute${diffMinutes === 1 ? "" : "s"} ago`;
19 } else {
20 return "just now";
21 }
22}