在检测个位数整数时转换毫秒

Converting milliseconds while detecting single digit integers

我创建了一个函数来检测毫秒并将其转换为分钟和秒。如果数字小于十,我想做的是在分钟和秒变量中的任何一个(或两者)上加上一个零。因此,例如,如果我有一个整数 184213,其计算结果为 3:4,我希望它是 03:04。有没有一种简短的方法可以做到这一点而不必写出很长的条件或三元?

msToTime(184213);

function msToTime(milliseconds) {
  var minutes = parseInt(milliseconds/(1000*60)%60),
      seconds = parseInt((milliseconds/1000)%60);
  return minutes + ':' + seconds;
}

试试这个:

msToTime(184213);

function msToTime(milliseconds) {
  var minutes = parseInt(milliseconds/(1000*60)%60),
      seconds = parseInt((milliseconds/1000)%60);
  return ('0' + minutes).slice(-2) + ':' + ('0' + seconds).slice(-2);
}

利用Date and slice的稍微不同的方法:

function msToTime(milliseconds) {
  var date = new Date(milliseconds);
  return date.toTimeString().slice(3,8);
}

msToTime(184213);
// outputs: "03:04"

一个小警告是,这当然会有“23:59”的限制,并且始终是下限值,因为不会显示超过分钟的任何毫秒值。