/** * 毫秒耗时的统一显示:5.2秒 / 2分05.2秒 / 1时02分05.2秒。 * 保留十分之一秒,先整体舍入再拆单位,避免 60.0 秒或 60 分溢出。 * 非法或未知耗时返回 null,不能以 0 冒充已测得结果。 */ export function formatElapsedDuration( milliseconds: number | null | undefined, ): string | null { if ( milliseconds == null || !Number.isFinite(milliseconds) || milliseconds < 0 ) { return null; } const tenths = Math.round(milliseconds / 100); const hours = Math.floor(tenths / 36_000); const minutes = Math.floor((tenths % 36_000) / 600); const seconds = ((tenths % 600) / 10).toFixed(1); if (hours > 0) { return `${hours}时${String(minutes).padStart(2, '0')}分${seconds.padStart(4, '0')}秒`; } return minutes > 0 ? `${minutes}分${seconds.padStart(4, '0')}秒` : `${seconds}秒`; }