getMinutes()0-9 - 如何显示两位数字?

时间:2012-01-20 00:41:15

标签: javascript

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无法返回?
  3. 我尝试了这个,但它不起作用:

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

21 个答案:

答案 0 :(得分:242)

var date = new Date("2012-01-18T16:03");

console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() );

答案 1 :(得分:169)

对于这些答案来说并不是很好,即使是最高职位上升也是如此。在这里,跨浏览器和更干净的int /字符串转换。另外我的建议是不要使用变量名称'date'和date = Date(...)这样的代码,你在很大程度上依赖于语言区分大小写(它可以工作,但是当你使用不同的服务器/浏览器代码时有风险)不同规则的语言)。因此,假设var current_date中的javascript日期:

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

该技术将{0}的最右边2个字符(slice(-2))置于字符串值getMinutes()之前。所以:

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

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

答案 2 :(得分:14)

另一个简短的方法是使用以下方法用前导零填充分钟:

String(date.getMinutes()).padStart(2, "0");

含义:将字符串设为两个字符长,如果缺少字符,则在此位置设置0

请参阅str.padStart(targetLength, padString)

上的文档

答案 3 :(得分:13)

优雅的ES6功能,可将日期格式化为hh:mm:ss

const leadingZero = (num) => `0${num}`.slice(-2);

const formatTime = (date) =>
  [date.getHours(), date.getMinutes(), date.getSeconds()]
  .map(leadingZero)
  .join(':');

答案 4 :(得分:12)

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

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

现在,如果你想使用它。

console.log(date.getFullMinutes());

答案 5 :(得分:8)

我建议:

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

这是一个函数调用较少。考虑性能总是好的。 它也很短;

答案 6 :(得分:4)

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

答案 7 :(得分:4)

另一种选择:

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

答案 8 :(得分:3)

我假设您需要将值作为字符串。您可以使用以下代码。 它将始终返回给你两位数的分钟作为字符串。

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

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

console.log(min);

希望这有帮助。

答案 9 :(得分:3)

数字没有长度,但您可以轻松地将数字转换为字符串,检查长度,然后在必要时添加0:

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

答案 10 :(得分:3)

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

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

将其设为字符串,然后检查长度(您需要检查length === 1,而不是0)。

答案 11 :(得分:2)

我在这里看不到任何ES6答案,所以我将使用StandardJS格式添加一个

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

答案 12 :(得分:1)

您可以使用moment js:

  

moment(date).format('mm')

示例:moment('2019-10-29T21:08').format('mm') ==> 08

希望它对某人有帮助

答案 13 :(得分:0)

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

JS的新手,所以这非常有帮助 大多数人看这个问题也是新的 所以这就是我在div中显示的名称“class =”min“

希望它可以帮助某人

答案 14 :(得分:0)

我通常使用这段代码:

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

它与@ogur接受的答案非常相似,但在不需要0的情况下不会连接空字符串。不确定它是否更好。只是另一种方法!

答案 15 :(得分:0)

两位数分钟使用: new Date().toLocaleFormat("%M")

答案 16 :(得分:0)

这怎么样?这个对我有用! :)

var d = new Date();
var minutes = d.getMinutes().toString().replace(/^(\d)$/, '0$1');

答案 17 :(得分:0)

另一个获得两位数字的分钟或小时的选项。

library(Rcpp)
library(gRbase)
vec=0:13
a=combnPrim(vec,4)
cppFunction("
NumericVector r_test(NumericMatrix a, Function comp, Function fct,Function 
tempf, Function combnPrim, NumericVector Fv, NumericVector vec, Function 
Subset){
        NumericVector if1(4);
        NumericVector if2(2);
        NumericVector if3(4);
        NumericVector if4(4);
        NumericVector seq(14);
        NumericMatrix b(2,45);
        NumericMatrix c(4,70);
        for (int i1=0; i1<=a.ncol()-1; i1++){
        if1=a (_, i1);
        b=combnPrim(Subset(vec,-(if1)),2);
        for (int i2=0; i2<=b.ncol()-1; i2++){
        if2=b (_, i2);
        c=combnPrim(Subset(Subset(vec,-(if1)),-(if2)),4);
        for (int i3=0; i3<=c.ncol()-1; i3++){
        if3=c (_, i3);
        if4=Subset(Subset(Subset(vec,-(if1)),-(if2)),-(if3));
        seq=tempf(if1,if2,if3,if4);
        }}}return if1;}")

Fv=7.001327
setwd("D:/STAT 602")

sourceCpp("Subset.cpp")

fct=function(seq,data,fact){
  return(anova(lm(data[seq]~as.factor(fact)))$`F value`[1])
}
tempf=function(x1,x2,x3,x4){
  return(c(x1,x2,x3,x4))
}
comp=function(x,y){
  return(x>y)
}
r_test(a,comp, fct, tempf, combnPrim, Fv, vec, Subset)

答案 18 :(得分:0)

使用ECMAScript国际化API,more info

const twoDigitMinutes = date.toLocaleString('en-us', { minute: '2-digit' });

答案 19 :(得分:0)

var d = new Date(date);
var dd = d.getDate();
var MM = d.getMonth();
var mm = d.getMinutes();
var HH = d.getHours();

// Hour
var result = ("0" + HH).slice(-2);

// Minutes
var result = ("0" + mm).slice(-2);

// Month
var result = ("0" + MM).slice(-2);

答案 20 :(得分:-2)

如果您在项目中使用AngularJS,只需注入$ filter并像以下一样使用它:

$filter('date')(value, 'HH:mm')

您还可以在模板中格式化输出,更多信息在过滤器here上。