export const formatCommentDate = (date: Date | number | string): string => { // Convert input to Date object if it's not already const inputDate = date instanceof Date ? date : new Date(date); const now = new Date(); // Get time difference in seconds const diffSeconds = Math.floor((now.getTime() - inputDate.getTime()) / 1000); // Just now - less than a minute ago if (diffSeconds < 60) { return "just now"; } // Minutes ago - less than an hour const diffMinutes = Math.floor(diffSeconds / 60); if (diffMinutes < 60) { return `${diffMinutes} ${diffMinutes === 1 ? "min" : "mins"} ago`; } // Hours ago - less than a day const diffHours = Math.floor(diffMinutes / 60); if (diffHours < 24) { return `${diffHours} ${diffHours === 1 ? "hour" : "hours"} ago`; } // Days ago - less than a week const diffDays = Math.floor(diffHours / 24); if (diffDays < 7) { return `${diffDays} ${diffDays === 1 ? "day" : "days"} ago`; } // Weeks ago - less than a month const diffWeeks = Math.floor(diffDays / 7); if (diffWeeks < 4) { return `${diffWeeks} ${diffWeeks === 1 ? "week" : "weeks"} ago`; } // Months ago - less than a year const diffMonths = Math.floor(diffDays / 30); if (diffMonths < 12) { return `${diffMonths} ${diffMonths === 1 ? "month" : "months"} ago`; } // More than a year ago - show full date const options: Intl.DateTimeFormatOptions = { year: "numeric", month: "long", day: "numeric", }; return inputDate.toLocaleDateString(undefined, options); };