typescript 将 ms 转换为时分秒,并且秒支持保留位数
在TypeScript中,可以创建一个函数将毫秒转换为时分秒格式,并且可以指定秒的保留位数。以下是一个实现的例子:
function msToTime(ms: number, digits: number = 2): string {
if (digits < 0 || digits > 3) {
throw new Error('位数必须在0到3之间');
}
const pad = (n: number, s: string) => {
return n < 10 ? `0${n.toString(10)}${s}` : `${n.toString(10)}${s}`;
};
let s = Math.floor(ms / 1000).toString(10);
let h = Math.floor(s / 3600);
s = pad(Math.floor(s % 3600), '');
let m = Math.floor(s / 60);
s = pad(Math.floor(s % 60), '');
s = s.substring(0, digits); // 保留指定位数的秒数
return h ? `${h}:${pad(m, ':')}${s}` : `${m}:${s}`;
}
// 使用示例
console.log(msToTime(123456789)); // 03:25:45.678
console.log(msToTime(123456789, 3)); // 03:25:45.678
console.log(msToTime(123456789, 1)); // 03:25:45.6
这个函数msToTime
接受两个参数:ms
表示毫秒数,digits
表示秒数后应保留的小数点后数字位数,默认为2。函数内部定义了一个辅助函数pad
用于处理数字前的零填充。最后根据小时数是否存在来决定返回格式。
评论已关闭