Как отформатировать числа, добавив 0 к однозначным числам? - PullRequest
242 голосов
/ 08 ноября 2011

Я хочу отформатировать число, чтобы оно состояло из двух цифр. Проблема возникает, когда передается 0 - 9, поэтому мне нужно отформатировать его в 00 - 09.

Есть ли в JavaScript средство форматирования чисел?

Ответы [ 29 ]

2 голосов
/ 25 февраля 2016

Если у вас нет lodash в вашем проекте, будет излишним добавлять всю библиотеку только для использования одной функции. Это самое сложное решение вашей проблемы, которое я когда-либо видел.

_.padStart(num, 2, '0')
1 голос
/ 30 сентября 2018

Я создал довольно простую функцию форматирования, которую я вызываю всякий раз, когда мне нужно отформатировать простую дату.Он имеет дело с форматированием однозначных чисел в двузначные, когда они меньше 10. Он выбирает дату, отформатированную как Sat Sep 29 2018 - 00:05:44

Эта функция используется как часть переменной utils, поэтому она называется:

let timestamp = utils._dateFormatter('your date string');

var utils = {
  _dateFormatter: function(dateString) {
    let d = new Date(dateString);
    let hours = d.getHours();
    let minutes = d.getMinutes();
    let seconds = d.getSeconds();
    d = d.toDateString();
    if (hours < 10) {
      hours = '0' + hours;
    }
    if (minutes < 10) {
      minutes = '0' + minutes;
    }
    if (seconds < 10) {
      seconds = '0' + seconds;
    }
    let formattedDate = d + ' - ' + hours + ':' + minutes + ':' + seconds;
    return formattedDate;
  }
}
1 голос
/ 12 июня 2018

AS тип данных в Javascript определяется динамически, он рассматривает 04 как 4 Используйте условный оператор, если значение меньше 10, затем добавьте 0 перед ним, сделав его строкой например,

var x=4;
  x = x<10?"0"+x:x
 console.log(x); // 04
1 голос
/ 08 июня 2018

`${number}`.replace(/^(\d)$/, '0$1');

Regex - лучший.

1 голос
/ 21 августа 2017

с помощью этой функции вы можете печатать с любыми n цифрами, которые вы хотите

function frmtDigit(num, n) {
    isMinus = num < 0;
    if (isMinus)
        num *= -1;
    digit = '';
    if (typeof n == 'undefined')
        n = 2;//two digits
    for (i = 1; i < n; i++) {
        if (num < (1 + Array(i + 1).join("0")))
            digit += '0';
    }
    digit = (isMinus ? '-' : '') + digit + num;
    return digit;
};
1 голос
/ 31 марта 2017

мой пример будет :

<div id="showTime"></div>

    function x() {
    var showTime = document.getElementById("showTime");
    var myTime = new Date();
    var hour = myTime.getHours();
    var minu = myTime.getMinutes();
    var secs = myTime.getSeconds();
    if (hour < 10) {
        hour = "0" + hour
    };
    if (minu < 10) {
        minu = "0" + minu
    };
    if (secs < 10) {
        secs = "0" + secs
    };

    showTime.innerHTML = hour + ":" + minu + ":" + secs;
}

setInterval("x()", 1000)
1 голос
/ 04 августа 2016

Для тех, кто хочет иметь разницу во времени и иметь результаты, которые могут принимать отрицательные числа, здесь хорошо.pad (3) = "03", pad (-2) = "-02", pad (-234) = "-234"

pad = function(n){
  if(n >= 0){
    return n > 9 ? "" + n : "0" + n;
  }else{
    return n < -9 ? "" + n : "-0" + Math.abs(n);
  }
}
1 голос
/ 22 мая 2016
    function colorOf(r,g,b){
  var f = function (x) {
    return (x<16 ? '0' : '') + x.toString(16) 
  };

  return "#" +  f(r) + f(g) + f(b);
}
1 голос
/ 13 декабря 2015

Вот моя версия.Может быть легко адаптирован к другим сценариям.

function setNumericFormat(value) {
    var length = value.toString().length;
    if (length < 4) {
        var prefix = "";
        for (var i = 1; i <= 4 - length; i++) {
            prefix += "0";
        }
        return prefix + value.toString();
    }
    return  value.toString();
}
...