如何将毫秒转换为M:MS格式?及实现逆向转换的方法
毫秒与「分钟:毫秒(M:MS)」格式的互转实现
一、毫秒转「M:MS」格式
和你提供的“分钟:秒”转换逻辑不同,这里不需要将剩余毫秒转成秒,而是直接保留扣除整分钟后的全部毫秒数,并补零到5位(因为1分钟=60000毫秒,剩余毫秒数范围是0-59999,共5位),这样就和Media Player Classic的高精度显示效果一致。
JavaScript实现代码:
function millisToMMs(millis) { const minutes = Math.floor(millis / 60000); // 把剩余毫秒数补零到5位,确保格式统一 const remainingMillis = (millis % 60000).toString().padStart(5, '0'); return `${minutes}:${remainingMillis}`; }
示例效果:
- 输入
60500(1分钟500毫秒)→ 输出1:00500 - 输入
599(0分钟599毫秒)→ 输出0:00599 - 输入
123456(2分钟3456毫秒)→ 输出2:03456
二、「M:MS」格式转毫秒
逆向转换只需将字符串按冒号分割,提取分钟数和剩余毫秒数后计算总和即可,同时可以添加简单的格式校验避免非法输入。
JavaScript实现代码:
function mMsToMillis(mMsStr) { const [minutesStr, millisStr] = mMsStr.split(':'); const minutes = parseInt(minutesStr, 10); const millis = parseInt(millisStr, 10); // 可选:校验输入格式合法性 if (isNaN(minutes) || isNaN(millis) || millis < 0 || millis >= 60000) { throw new Error('无效的M:MS格式,请确保格式为「数字:5位数字」'); } return minutes * 60000 + millis; }
示例效果:
- 输入
1:00500→ 输出60500 - 输入
0:00599→ 输出599 - 输入
2:03456→ 输出123456
内容的提问来源于stack exchange,提问作者M.KH
相关产品推荐
相关产品推荐

