2026-04-15 11:46:42 +08:00

38 lines
978 B
TypeScript

import { clsx, type ClassValue } from "clsx";
export function cn(...inputs: ClassValue[]) {
return clsx(inputs);
}
export function formatNumber(value: number) {
return new Intl.NumberFormat("zh-CN").format(value);
}
export function formatDateTime(value: string | Date) {
return new Intl.DateTimeFormat("zh-CN", {
month: "2-digit",
day: "2-digit",
hour: "2-digit",
minute: "2-digit",
}).format(new Date(value));
}
export function formatDurationMs(value: number | null | undefined) {
if (value == null || !Number.isFinite(value)) {
return "暂无";
}
if (value < 1000) {
return `${Math.round(value)} ms`;
}
const seconds = value / 1000;
if (seconds < 60) {
const rounded = seconds >= 10 ? seconds.toFixed(1) : seconds.toFixed(2);
return `${rounded.replace(/\.0+$/, "")} s`;
}
const minutes = Math.floor(seconds / 60);
const remainSeconds = Math.round(seconds % 60);
return `${minutes}${remainSeconds}`;
}