格式化Date.getHours(),Date.getMinutes(),Date.getSeconds()

时间:2016-01-15 06:51:48

标签: javascript

我想在获得Date.getHours()Date.getMinutes()Date.getSeconds()的值后格式化输出。

这是漫长的道路:

var dt = new Date();
var HH = dt.getHours();
var mm = dt.getMinutes();
var ss = dt.getSeconds();

HH = HH < 10 ? '0' + HH : HH;
mm = mm < 10 ? '0' + mm : mm;
ss = ss < 10 ? '0' + ss : ss;

我的问题:如何将最后一部分压缩为.toString('D2')函数?

我想归档的内容:

var dt = new Date();
var HH = dt.getHours().toString('D2');
var mm = dt.getMinutes().toString('D2');
var ss = dt.getSeconds().toString('D2');

p / s:.toString('D2')Standard Numeric Format Strings的含义相同。像C#语法一样:

int i = 1;
Console.WriteLine(i.ToString("D2")); // output: 01

4 个答案:

答案 0 :(得分:2)

我不认为Javascript有这种支持。您需要编写辅助功能或安装库。

我能想到的最接近单线的是

("0"+dt.getSeconds()).slice(-2)
this answer之后

答案 1 :(得分:1)

以下内容应该有效:

var HH = ('0'+dt.getHours().toString()).slice(-2);

其他人的类似方法 您还可以避免显式调用toString,因此:

var HH = ('0'+dt.getHours()).slice(-2);

答案 2 :(得分:1)

var dt = new Date();
var today = dt.toJSON().slice(0, 10);
var time = dt.toJSON().slice(11, -1);

答案 3 :(得分:1)

此功能应该能够为您的问题提供解决方案。虽然这不是您想要的方式,但这是最简单的。

&#13;
&#13;
function decimalFormat(precision, number) {
  if (arguments.length !== 2)
    throw new Error("Invalid number of arguments!");
  else if (typeof precision !== "number" || typeof number !== "number")
    throw new TypeError("Invalid parameter type!");
  var zeros = "0";
  for (var i = 0; i < Math.abs(precision); i++)
    zeros += "0";
  return (zeros + number.toString()).slice(-1 * (Math.abs(precision)));
}

alert(decimalFormat(10, 21));
alert(decimalFormat(2, 5221));
alert(decimalFormat(4, 221));
&#13;
&#13;
&#13;