/** * Format a date as a human-friendly relative time string * Examples: "just now", "5m ago", "2h ago", "3d ago", "Jan 15" */ export function formatTimeAgo(date: Date): string { const now = new Date(); const diffMs = now.getTime() - date.getTime(); const diffSec = Math.floor(diffMs / 1000); const diffMin = Math.floor(diffSec / 60); const diffHour = Math.floor(diffMin / 60); const diffDay = Math.floor(diffHour / 24); if (diffSec < 10) { return "just now"; } if (diffMin < 1) { return `${diffSec}s ago`; } if (diffHour < 1) { return `${diffMin}m ago`; } if (diffDay < 1) { return `${diffHour}h ago`; } if (diffDay < 7) { return `${diffDay}d ago`; } // For older dates, show abbreviated month and day const month = date.toLocaleDateString("en-US", { month: "short" }); const day = date.getDate(); return `${month} ${day}`; }