21 lines
702 B
TypeScript
21 lines
702 B
TypeScript
export function timeAgo(date: string | Date) {
|
|
const ts = new Date(date).getTime();
|
|
const diffMs = Date.now() - ts;
|
|
|
|
const minutes = Math.floor(diffMs / 60000);
|
|
if (minutes < 1) return "gerade eben";
|
|
if (minutes < 60) return `vor ${minutes} Minute${minutes === 1 ? "" : "n"}`;
|
|
|
|
const hours = Math.floor(minutes / 60);
|
|
if (hours < 24) return `vor ${hours} Stunde${hours === 1 ? "" : "n"}`;
|
|
|
|
const days = Math.floor(hours / 24);
|
|
if (days < 7) return `vor ${days} Tag${days === 1 ? "" : "en"}`;
|
|
|
|
const weeks = Math.floor(days / 7);
|
|
if (weeks < 4) return `vor ${weeks} Woche${weeks === 1 ? "" : "n"}`;
|
|
|
|
// Fallback: Datum kurz
|
|
return new Date(date).toLocaleDateString("de-DE");
|
|
}
|