我试图编写一个逻辑来将秒转换为以下格式:
(而不仅仅是HH:MM:SS,因此这个问题与Stackoverflow上的其他问题不同)
我目前有以下逻辑来获取HH:MM:SS格式:
getTime(seconds) {
let h = Math.floor(seconds / 3600);
seconds = seconds % 3600;
let min = Math.floor(seconds / 60);
seconds = Math.floor(seconds % 60);
if (seconds.toString().length < 2) seconds = "0" + seconds;
if (min.toString().length < 2) min = "0" + min;
return (h + ":" + min + ":" + seconds);
}
但我怎么能得到毫秒或帧?
答案 0 :(得分:2)
如果seconds
是浮点数,您可以使Math.round((seconds - Math.floor(seconds)) * 1000)
获得剩余的毫秒数。或Math.round((seconds - Math.floor(seconds)) * fps)
其中fps
是每秒的帧数。
答案 1 :(得分:0)
var getStringFromMS=(ms,res=[])=>(
[1000,60,60,24].reduce((rest,curr,i)=>(
res[3-i]=rest%curr,Math.floor(rest/curr)
),ms),res.join(":")
);
只需迭代不同的句点并将毫秒减少到几天,同时将结果存储在 res 中,然后可以简单地将其连接起来。您可以使用 frames
替换1000答案 2 :(得分:0)
如果您的函数只需要几秒钟,那么就无法从这些信息中获得毫秒......
您可以假设它是零毫秒。
如果你想要精确到毫秒,你的函数应该花费几毫秒。