如何正确格式化时间

时间:2015-07-07 14:48:56

标签: 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 = (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;
  }
}

如果您有任何其他问题,请与我们联系。此功能用于格式化音频片段的持续时间计数器。

2 个答案:

答案 0 :(得分:0)

您应该执行以下操作:

  • 计算小时数
  • hours * 60 * 60
  • 中减去seconds
  • 算上分钟
  • minutes * 60
  • 中减去seconds
  • 余下的是秒

顺便说一句,对于时间和日期计算,我绝对推荐MomentJS

答案 1 :(得分:0)

谢谢你所有的帮助。基于许多建议,我将着眼于使用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;
  }
}