import dayjs from "dayjs"; import "dayjs/locale/vi"; import relativeTime from "dayjs/plugin/relativeTime"; dayjs.extend(relativeTime); dayjs.locale("vi"); export { dayjs }; /** * Chuyển đổi unix timestamp thành text thời gian tương đối * @param unixTime - Unix timestamp (seconds hoặc milliseconds) * @returns String mô tả thời gian tương đối (vd: "5 phút trước", "2 giờ trước") */ export function formatRelativeTime(unixTime: number): string { if (!unixTime || unixTime <= 0) return "Không rõ"; // Xác định đơn vị timestamp (seconds hoặc milliseconds) const timestamp = unixTime < 10000000000 ? unixTime * 1000 : unixTime; const updateDate = new Date(timestamp); const now = new Date(); const diffMs = now.getTime() - updateDate.getTime(); // Nếu thời gian trong tương lai if (diffMs < 0) return "Vừa xong"; const diffSeconds = Math.floor(diffMs / 1000); const diffMins = Math.floor(diffSeconds / 60); const diffHours = Math.floor(diffMins / 60); const diffDays = Math.floor(diffHours / 24); const diffWeeks = Math.floor(diffDays / 7); const diffMonths = Math.floor(diffDays / 30); const diffYears = Math.floor(diffDays / 365); if (diffSeconds < 60) return "Vừa xong"; if (diffMins < 60) return `${diffMins} phút trước`; if (diffHours < 24) return `${diffHours} giờ trước`; if (diffDays < 7) return `${diffDays} ngày trước`; if (diffWeeks < 4) return `${diffWeeks} tuần trước`; if (diffMonths < 12) return `${diffMonths} tháng trước`; return `${diffYears} năm trước`; }