我想在获得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
答案 0 :(得分:2)
答案 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)
此功能应该能够为您的问题提供解决方案。虽然这不是您想要的方式,但这是最简单的。
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;