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 diffWeeks = Math.floor(diffDays / 7); 10 const diffMonths = Math.floor(diffDays / 30); 11 const diffYears = Math.floor(diffDays / 365); 12 13 if (diffYears > 0) { 14 return `${diffYears} year${diffYears === 1 ? "" : "s"} ago`; 15 } else if (diffMonths > 0) { 16 return `${diffMonths} month${diffMonths === 1 ? "" : "s"} ago`; 17 } else if (diffWeeks > 0) { 18 return `${diffWeeks} week${diffWeeks === 1 ? "" : "s"} ago`; 19 } else if (diffDays > 0) { 20 return `${diffDays} day${diffDays === 1 ? "" : "s"} ago`; 21 } else if (diffHours > 0) { 22 return `${diffHours} hour${diffHours === 1 ? "" : "s"} ago`; 23 } else if (diffMinutes > 0) { 24 return `${diffMinutes} minute${diffMinutes === 1 ? "" : "s"} ago`; 25 } else { 26 return "just now"; 27 } 28}