mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-28 05:46:36 +08:00
5a8722ff07
接入无 URL 前缀的 zh-CN/en,顶栏与外观设置可切换语言;选择写入 cookie 后刷新生效。
40 lines
915 B
TypeScript
40 lines
915 B
TypeScript
import type { AppLocale } from './config';
|
|
import { defaultLocale } from './config';
|
|
|
|
const localeToIntl: Record<AppLocale, string> = {
|
|
'zh-CN': 'zh-CN',
|
|
en: 'en-US',
|
|
};
|
|
|
|
export function formatDateTime(
|
|
dateStr: string | Date,
|
|
locale: AppLocale = defaultLocale,
|
|
timeZone = 'Asia/Shanghai',
|
|
): string {
|
|
try {
|
|
const date = typeof dateStr === 'string' ? new Date(dateStr) : dateStr;
|
|
return new Intl.DateTimeFormat(localeToIntl[locale] ?? locale, {
|
|
timeZone,
|
|
year: 'numeric',
|
|
month: '2-digit',
|
|
day: '2-digit',
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
hour12: false,
|
|
}).format(date);
|
|
} catch {
|
|
return String(dateStr);
|
|
}
|
|
}
|
|
|
|
export function formatNumber(
|
|
value: number,
|
|
locale: AppLocale = defaultLocale,
|
|
): string {
|
|
try {
|
|
return new Intl.NumberFormat(localeToIntl[locale] ?? locale).format(value);
|
|
} catch {
|
|
return String(value);
|
|
}
|
|
}
|