getMinutes()0-9 – 如何用两个数字?

var date = "2012-01-18T16:03"; var date = new Date(date); console.log(date.getMinutes()); console.log(date.getMinutes().length) 

这返回3。

  1. 我如何使它返回“03”?
  2. 为什么.length返回undefinded?

我试过这个,但没有奏效:

如果strlen == 1那么num = ('0' + num);

 var date = new Date("2012-01-18T16:03"); console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() ); 

哎呀,这些答案不是很好,即使是最高的职位上涨。 在这里,跨浏览器和更干净的int /string转换。 另外我的build议是不要使用像date = Date(...)这样的代码的variables名称'date',在那里你很大程度上依赖语言区分大小写(它可以工作,但是当你使用服务器/浏览器用不同的规则编码不同的语言)。 所以,假设在一个var current_date javascriptdate:

 mins = ('0'+current_date.getMinutes()).slice(-2); 

该技术是将getMinutes()的string值前面的“0”的最右边的2个字符(slice(-2))作为前缀。 所以:

 "0"+"12" -> "012".slice(-2) -> "12" 

 "0"+"1" -> "01".slice(-2) -> "01" 

如果可以的话,我想提供一个更简洁的解决scheme。接受的答案是非常好的。 但是我会这样做的。

 Date.prototype.getFullMinutes = function () { if (this.getMinutes() < 10) { return '0' + this.getMinutes(); } return this.getMinutes(); }; 

现在,如果你想使用这个。

 console.log(date.getFullMinutes()); 

你应该检查它是否小于10 …不寻找它的长度,因为这是一个数字,而不是一个string

我build议:

 var minutes = data.getMinutes(); minutes = minutes > 9 ? minutes : '0' + minutes; 

这是一个函数调用较less。 考虑绩效总是很好的。 它也很短;

另外一个select:

 var dateTime = new Date(); var minutesTwoDigitsWithLeadingZero = ("0" + dateTime.getMinutes()).substr(-2); 

.length是未定义的,因为getMinutes返回一个数字,而不是一个string。 数字没有length属性。 你可以做

var m = "" + date.getMinutes();

使其成为一个string, 然后检查长度(你会想检查length === 1 ,而不是0)。

我假设你会需要作为string的值。 你可以使用下面的代码。 它总是会返回给你两位数字的string。

var date = new Date(date);
var min = date.getMinutes();

if(min <10){
min ='0'+ min;
} else {
min = min +'';
}

的console.log(分钟);

希望这可以帮助。

数字没有长度,但可以很容易地将数字转换为string,检查长度,然后在必要时加上0。

 var strMonth =''+ date.getMinutes();
 if(strMonth.length == 1){
   strMonth ='0'+ strMonth;
 }

我没有在这里看到任何ES6的答案,所以我会添加一个使用StandardJS格式

 // ES6 String formatting example const time = new Date() const tempMinutes = new Date.getMinutes() const minutes = (tempMinutes < 10) ? `0${tempMinutes}` : tempMinutes 

优雅的ES6函数将date格式化为hh:mm:ss

 const leadingZero = (num) => `0${num}`.slice(-2); const formatTime = (date) => [date.getHours(), date.getMinutes(), date.getSeconds()] .map(leadingZero) .join(':'); 

我通常使用这段代码:

 var start = new Date(timestamp), startMinutes = start.getMinutes() < 10 ? '0' + start.getMinutes() : start.getMinutes(); 

它与@ogur接受的答案非常相似,但是在不需要0的情况下不连接空string。 不知道这是更好的。 只是另一种方式来做到这一点!

 $(".min").append( (date.getMinutes()<10?'0':'') + date.getMinutes() ); 

新的JS所以这是非常有益的最有意思的是看这个概念新的ppl所以这就是我如何得到它显示在称为“class =”分“

希望它可以帮助别人