/** 版本页时间与文件格式化(任务 137):字节数/时间显示归一;纯逻辑。 */ /** 字节数 → 可读文本(B/KB/MB/GB,保留 1 位)。 */ export function formatFileSize(value: number): string { const bytes = typeof value === 'number' && Number.isFinite(value) ? Math.max(value, 0) : 0 if (bytes < 1024) return `${bytes} B` const units = ['KB', 'MB', 'GB'] let amount = bytes let unit = 'B' for (const next of units) { amount /= 1024 unit = next if (amount < 1024 || next === 'GB') break } return `${amount.toFixed(1)} ${unit}` } const DISPLAY_DATETIME = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}(:\d{2}(\.\d+)?)?$/ /** 后端时间(ISO T 或空格分隔) → 显示文本(yyyy-MM-dd HH:mm:ss);非法回空。 */ export function formatDisplayDateTime(value: unknown): string { const text = typeof value === 'string' ? value.trim().replace('T', ' ') : '' return DISPLAY_DATETIME.test(text) ? text : '' }