这是尝试过的:
部分伪代码:
var hours = date1.getHours();
var minutes = date2.getMinutes();
if (hours.length == 1)
hours = "0" + hours;
if (minutes.length == 1)
minutes = "0" + minutes;
var time = hours + ':' + minutes;
有没有像格式化字符串函数更聪明的方法,我可以说:
var minutes = date.getMinutes('mm');
var hours = date.getHours('hh');
所以它会自动添加零?
答案 0 :(得分:4)
由于整数
没有长度,因此修复了代码var hours = date1.getHours();
var minutes = date2.getMinutes();
if (hours<10) hours = "0" + hours;
if (minutes<10) minutes = "0" + minutes;
var time = ""+ hours + ":" + minutes;
您不需要框架,并且没有更短的方法来执行此操作
这可能是你的意思:
function pad(num) {
return ("0"+num).slice(-2)
}
var time = pad(date1.getHours())+":"+pad(date2.getMinutes());
答案 1 :(得分:3)
此功能在javascript中本身不存在,您必须自己添加(如您已开始执行),或使用包。
答案 2 :(得分:2)
使用DateJS,您将能够使用mm和hh添加前面的零:)
答案 3 :(得分:1)
您可以向Number prototype
添加方法 Number.prototype.pad0 = function(length) {
var result = this.toString();
while(result.length<length) result = "0"+result;
return result;
}
然后你可以得到你想要的东西
var date = new Date();
console.log(date.getMinutes().pad0(2));
console.log(date.getHours().pad0(2));
答案 4 :(得分:1)
另一种方法:
var d = new Date();
var t = [ d.getHours(), d.getMinutes(), d.getSeconds() ];
var s = t.map( function(z){return ('00'+z).slice(-2)} ).join(':');
console.log(s);
将时间部分放入数组中。该数组经过map()
,其中数字变为前导零。然后将生成的数组连接到一个字符串中,使用&#34;:&#34;分离器。
答案 5 :(得分:0)
在检查长度之前将数字转换为字符串:
var hours = String(date1.getHours());
var minutes = String(date2.getMinutes());
if (hours.length == 1)
hours = "0" + hours;
if (minutes.length == 1)
minutes = "0" + minutes;
var time = hours + ':' + minutes;