Javascript 如何正确设置时间格式

Javascript 如何正确设置时间格式,javascript,jquery,time,Javascript,Jquery,Time,我正在努力安排时间。我有一个返回秒、分钟和小时的函数,但我对分钟有一个问题。在分钟到达60后,我想将分钟时间重置为0并重新启动时钟。有什么想法吗 function formatTime(seconds) { hours = Math.floor((seconds / 60) / 60); hours = (hours >= 10) ? minutes : "0" + hours; minutes = Math.floor(seconds / 60); minutes = (

我正在努力安排时间。我有一个返回秒、分钟和小时的函数,但我对分钟有一个问题。在分钟到达60后,我想将分钟时间重置为0并重新启动时钟。有什么想法吗

function formatTime(seconds) {
  hours = Math.floor((seconds / 60) / 60);
  hours = (hours >= 10) ? minutes : "0" + hours;
  minutes = Math.floor(seconds / 60);
  minutes = (minutes >= 10) ? minutes : "0" + minutes;
  seconds = Math.floor(seconds % 60);
  seconds = (seconds >= 10) ? seconds : "0" + seconds;

  if (duration >= hours) {
    return hours + ":" + minutes + ":" + seconds;
  } else {
    return minutes + ":" + seconds;
  }
}

如果你还有其他问题,请告诉我。此功能用于格式化音频剪辑的持续时间计数器。

您应执行以下操作:

  • 计算时间
  • 秒中减去
    小时*60*60
  • 数分钟
  • seconds
  • 剩下的是秒

顺便说一下,对于时间和日期的计算,我绝对推荐。

谢谢大家的帮助。基于许多建议,我将考虑使用momentjs。然而,在其中一些帖子的帮助下,我也成功地实现了格式时间函数。它现在可以满足我的需要,看起来是这样的:

function formatTime(seconds) {
  hours = Math.floor((seconds / 3600));
  hours = (hours >= 10) ? minutes : "0" + hours;
  minutes = Math.floor((seconds - (hours * 3600)) / 60);
  minutes = (minutes >= 10) ? minutes : "0" + minutes;
  seconds = Math.floor(seconds - hours * 3600) - (minutes * 60);
  seconds = (seconds >= 10) ? seconds : "0" + seconds;

  if (duration >= hours) {
    return hours + ":" + minutes + ":" + seconds;
  } else {
    return minutes + ":" + seconds;
  }
}

除非这是课程,否则我建议使用诸如或之类的图书馆。JS中的日期争拗是一个巨大的痛苦。若你们对库并没有限制,那个么看看重复的,或者最好的方法就是使用一个库。如果您想使用提供的代码片段自己制作,请从初始秒数中减去小时和分钟。小时=
Math.floor(秒/3600)
,分钟=
Math.floor(秒-(小时*3600))
等。