首页 > 解决方案 > 如何在 Javascript 中使用 NumberFormat?

问题描述

我希望我的倒数计时器显示两位数,例如“53:00”而不是“53:0”。不知道这里出了什么问题?谢谢!

function convertSeconds(s) {
    var min = Math.floor(s / 60);
    var sec = s % 60;
    return nf(min, 2) + ':' + nf(sec, 2);
  }

标签: javascriptnumber-formatting

解决方案


您可以使用padStart()它来确保字符串具有一定的长度。如果不是,它会用你想要的任何东西填充它。在这种情况下0

const nf = (n, c) => n.toString().padStart(c, '0');

function convertSeconds(s) {
  var min = Math.floor(s / 60);
  var sec = (s % 60)
  return nf(min, 2) + ':' + nf(sec, 2);
}

console.log(convertSeconds(64))
console.log(convertSeconds(119))

不知道你是否想填补没有的分钟。

还有一个Intl.NumberFormat()which 有一个最小位数的选项(尽管这似乎有点过分了):

console.log(new Intl.NumberFormat('en-US', { minimumIntegerDigits: 2}).format(2));

console.log(new Intl.NumberFormat('en-US', { minimumIntegerDigits: 2}).format(59));


推荐阅读