@dtinsight/dt-utils
Version:
75 lines (74 loc) • 1.91 kB
TypeScript
declare type TimeUnit = 'h' | 'm' | 's';
interface FormatSecondOptions {
/** 单位文案映射 */
units?: Partial<Record<TimeUnit, string>>;
/** 是否补零 */
padZero?: boolean;
}
/**
* 将秒数格式化为可读的时间字符串。
*
* 支持:
* - 自定义时间单位(h / m / s)
* - 数值补零(padZero)
* - 通过 format 模板输出(如 HH:mm:ss)
*
* @category 格式化
*
* @param {number} secondTime
* 需要转换的秒数(小于等于 0、NaN、非数字将视为 0)
*
* @param {Object} [options]
* 格式化选项
*
* @param {boolean} [options.padZero=false]
* 是否对小时、分钟、秒进行补零(如 02h、03m、09s)
*
* @param {Object} [options.units]
* 时间单位映射,可自定义 h / m / s 的展示文案
*
* @param {string} [options.format]
* 格式化模板,支持 HH、mm、ss(如 HH:mm:ss)
* 若传入 format,则优先使用模板输出
*
* @returns {string}
* 格式化后的时间字符串
*
* @example
* ```ts
* import { formatSecond } from 'dt-utils';
*
* // 基本用法(默认单位:h / m / s)
* formatSecond(3661) // => '1h1m1s'
*
*
* formatSecond(59) // => '59s'
*
* formatSecond(0) // => '0s'
*
* // 补零
* formatSecond(3661, { padZero: true }) // => '01h01m01s'
*
* formatSecond(60, { padZero: true }) // => '01m'
*
* // 自定义单位(中文)
* formatSecond(1106, {
* units: { h: '小时', m: '分', s: '秒' },
* }) // => '18分26秒'
*
* // 使用 format 模板(运行时长)
* formatSecond(12078, {
* format: 'HH:mm:ss',
* padZero: true,
* }) // => '03:21:18'
*
* // 边界情况
* formatSecond(-1) // => '0s'
*
* formatSecond(NaN) // => '0s'
*
* formatSecond() // => '0s'
* ```
*/
export declare const formatSecond: (secondTime?: number, options?: FormatSecondOptions) => string;
export default formatSecond;