29 lines
762 B
TypeScript
29 lines
762 B
TypeScript
/**
|
|
* 将秒数转换为更友好的时间格式
|
|
* @param seconds 总秒数
|
|
* @returns 格式化后的时间字符串
|
|
*/
|
|
export function formatDuration(seconds: number): { s: number, m: number, h: number } {
|
|
if (seconds < 60) {
|
|
return { s: seconds, m: 0, h: 0 };
|
|
}
|
|
|
|
const minutes = Math.floor(seconds / 60);
|
|
const remainingSeconds = seconds % 60;
|
|
|
|
if (minutes < 60) {
|
|
return remainingSeconds > 0
|
|
? { s: remainingSeconds, m: minutes, h: 0 }
|
|
: { s: 0, m: minutes, h: 0 };
|
|
}
|
|
|
|
const hours = Math.floor(minutes / 60);
|
|
const remainingMinutes = minutes % 60;
|
|
|
|
if (remainingMinutes === 0) {
|
|
return { s: 0, m: 0, h: hours };
|
|
}
|
|
|
|
return { s: seconds, m: minutes, h: hours };
|
|
}
|