将秒转换为HH:MM:SS:MS和/或HH:MM:SS; F.

时间:2017-07-29 16:26:24

标签: javascript

我试图编写一个逻辑来将秒转换为以下格式:

  1. HH:MM:SS:MS,其中MS是毫秒
  2. HH:MM:SS; F,其中F是框架
  3. (而不仅仅是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);
    }
    

    但我怎么能得到毫秒或帧?

3 个答案:

答案 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(":")
);

In action with current time

只需迭代不同的句点并将毫秒减少到几天,同时将结果存储在 res 中,然后可以简单地将其连接起来。您可以使用 frames

替换1000

答案 2 :(得分:0)

如果您的函数只需要几秒钟,那么就无法从这些信息中获得毫秒......

您可以假设它是零毫秒。

如果你想要精确到毫秒,你的函数应该花费几毫秒。