Files
deer-flow/frontend/src/core/utils/datetime.ts
2026-02-03 18:18:56 +08:00

28 lines
774 B
TypeScript

import { formatDistanceToNow } from "date-fns";
import { enUS as dateFnsEnUS, zhCN as dateFnsZhCN } from "date-fns/locale";
import { detectLocale, type Locale } from "@/core/i18n";
import { getLocaleFromCookie } from "@/core/i18n/cookies";
function getDateFnsLocale(locale: Locale) {
switch (locale) {
case "zh-CN":
return dateFnsZhCN;
case "en-US":
default:
return dateFnsEnUS;
}
}
export function formatTimeAgo(date: Date | string | number, locale?: Locale) {
const effectiveLocale =
locale ??
(getLocaleFromCookie() as Locale | null) ??
// Fallback when cookie is missing (or on first render)
detectLocale();
return formatDistanceToNow(date, {
addSuffix: true,
locale: getDateFnsLocale(effectiveLocale),
});
}