38 lines
975 B
TypeScript
38 lines
975 B
TypeScript
function timeAgo(date: Date) {
|
|
const now = new Date();
|
|
const d = new Date(date);
|
|
|
|
const diffMs = now.getTime() - d.getTime();
|
|
const seconds = Math.floor(diffMs / 1000);
|
|
const minutes = Math.floor(seconds / 60);
|
|
const hours = Math.floor(minutes / 60);
|
|
|
|
// 🔥 cek apakah masih hari yang sama
|
|
const isToday =
|
|
now.getDate() === d.getDate() &&
|
|
now.getMonth() === d.getMonth() &&
|
|
now.getFullYear() === d.getFullYear();
|
|
|
|
if (isToday) {
|
|
if (seconds < 60) return `${seconds} detik lalu`;
|
|
if (minutes < 60) return `${minutes} menit lalu`;
|
|
return `${hours} jam lalu`;
|
|
}
|
|
|
|
// 🔥 kalau bukan hari ini → tampil tanggal + jam
|
|
const time = d.toLocaleTimeString("id-ID", {
|
|
hour: "2-digit",
|
|
minute: "2-digit",
|
|
});
|
|
|
|
const datePart = d.toLocaleDateString("id-ID", {
|
|
day: "2-digit",
|
|
month: "short",
|
|
year: "numeric",
|
|
});
|
|
|
|
return `${time} ${datePart}`;
|
|
}
|
|
|
|
|
|
export default timeAgo |