/** * Returns a human-readable relative time string for a given date. * Examples: "just now", "5 minutes ago", "2 hours ago", "3 days ago", "2026-01-01" */ export function timeAgo(date: Date): string { const diffMs = Date.now() - date.getTime(); const diffSecs = Math.floor(diffMs / 1000); if (diffSecs < 60) return "just now"; const diffMins = Math.floor(diffSecs / 60); if (diffMins < 60) return `${diffMins} minute${diffMins === 1 ? "" : "s"} ago`; const diffHours = Math.floor(diffMins / 60); if (diffHours < 24) return `${diffHours} hour${diffHours === 1 ? "" : "s"} ago`; const diffDays = Math.floor(diffHours / 24); if (diffDays < 30) return `${diffDays} day${diffDays === 1 ? "" : "s"} ago`; return date.toISOString().split("T")[0]; }