// utils/formatChatTime.ts import dayjs from 'dayjs'; import relativeTime from 'dayjs/plugin/relativeTime'; import 'dayjs/locale/id'; dayjs.extend(relativeTime); dayjs.locale('id'); /** * Format waktu pesan untuk tampilan chat * @param date ISO string atau Date object * @returns string formatted time */ export const formatChatTime = (date: string | Date): string => { const messageDate = dayjs(date); const now = dayjs(); // Jika hari ini if (messageDate.isSame(now, 'day')) { return messageDate.format('HH.mm'); // contoh: "14.30" } // Jika kemarin if (messageDate.isSame(now.subtract(1, 'day'), 'day')) { return messageDate.format('dddd HH:mm'); } // Jika dalam 7 hari terakhir (tapi bukan kemarin/ hari ini) if (now.diff(messageDate, 'day') < 7) { return messageDate.format('dddd HH:mm'); // contoh: "Senin 14:30" } // Lebih dari seminggu lalu → tampilkan tanggal return messageDate.format('D MMM YYYY'); // contoh: "12 Mei 2024" };