Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getMinutes()0-9-如何显示两位数?_Javascript - Fatal编程技术网

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

Javascript getMinutes()0-9-如何显示两位数?,javascript,Javascript,这返回3 如何让它返回'03' 为什么.length返回未索引 我试过这个,但不起作用: 如果strlen==1,则num=('0'+num).length未定义,因为getMinutes返回的是数字,而不是字符串。数字没有length属性。你可以 var m=”“+date.getMinutes() 要使其成为字符串,然后检查长度(您希望检查长度===1,而不是0) 您应该检查它是否小于10。。。不查找其长度,因为这是一个数字而不是字符串。数字没有长度,但您可以轻松地将数字转换为字符串,检查长

这返回3

  • 如何让它返回'03'
  • 为什么
    .length
    返回未索引 我试过这个,但不起作用:


    如果strlen==1,则
    num=('0'+num)
    .length
    未定义,因为
    getMinutes
    返回的是数字,而不是字符串。数字没有
    length
    属性。你可以

    var m=”“+date.getMinutes()


    要使其成为字符串,然后检查长度(您希望检查
    长度===1
    ,而不是0)

    您应该检查它是否小于10。。。不查找其长度,因为这是一个数字而不是字符串。数字没有长度,但您可以轻松地将数字转换为字符串,检查长度,然后根据需要在0前面加上前缀:

    var date = "2012-01-18T16:03";
    var date = new Date(date);
    
    console.log(date.getMinutes());
    console.log(date.getMinutes().length)
    
    var strMonth=''+date.getMinutes(); if(strMonth.length==1){ strMonth='0'+strMonth; }
    var日期=新日期(“2012-01-18T16:03”);
    
    log((date.getMinutes()我假设您需要字符串形式的值。您可以使用下面的代码。 它将始终返回两位数的分钟作为字符串

    var date = new Date("2012-01-18T16:03");
    
    console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() );
    
    var日期=新日期(日期);
    var min=date.getMinutes();
    如果(最小值<10){
    最小值='0'+最小值;
    }否则{
    最小值=最小值+“”;
    }
    控制台日志(分钟);
    

    希望这有帮助。

    我通常使用以下代码:

    var date = new Date(date);
    var min = date.getMinutes();
    
    if (min < 10) {
    min = '0' + min;
    } else {
    min = min + '';
    }
    console.log(min);
    
    var start=新日期(时间戳),
    startMinutes=start.getMinutes()<10?'0'+start.getMinutes():start.getMinutes();
    
    它与@ogur accepted answer非常相似,但在不需要0的情况下不会连接空字符串。不确定它是否更好。只是另一种方法!

    我建议:

    var start = new Date(timestamp),
        startMinutes = start.getMinutes() < 10 ? '0' + start.getMinutes() : start.getMinutes();
    
    只需少调用一个函数,考虑性能总是好的。 它也很短;

    $(“.min”).append((date.getMinutes()另一个选项:

    var minutes = data.getMinutes();
    minutes = minutes > 9 ? minutes : '0' + minutes;
    
    $(".min").append( (date.getMinutes()<10?'0':'') + date.getMinutes() );
    

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

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

    Yikes这些答案都不太好,即使是排名靠前的帖子。现在,跨浏览器和更干净的int/string转换。另外,我的建议是不要在代码中使用变量名“date”,比如
    date=date(…)
    ,因为您在很大程度上依赖于语言大小写敏感度(这是可行的,但在使用不同语言和不同规则的服务器/浏览器代码时会有风险)

    console.log(date.getFullMinutes());
    
    该技术是将“0”的最右边的2个字符
    (slice(-2))
    放在
    getMinutes()
    的字符串值上

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


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

    "0"+"1" -> "01".slice(-2) -> "01"
    
    //ES6字符串格式示例
    常数时间=新日期()
    const tempments=new Date.getMinutes()
    常量分钟=(tempments<10)`0${tempments}`:tempments
    
    优雅的ES6函数,用于将日期格式化为
    hh:mm:ss

    // ES6 String formatting example
    const time = new Date()
    const tempMinutes = new Date.getMinutes()
    const minutes = (tempMinutes < 10) ? `0${tempMinutes}` : tempMinutes
    
    对于两位数分钟,请使用:
    new Date().toLocaleFormat(“%M”)

    另一种简单方法是使用以下命令在分钟内填充前导零:

    const leadingZero = (num) => `0${num}`.slice(-2);
    
    const formatTime = (date) =>
      [date.getHours(), date.getMinutes(), date.getSeconds()]
      .map(leadingZero)
      .join(':');
    
    含义:将字符串设为两个字符长,如果缺少一个字符,则在此位置设置
    0


    如果您在项目中使用AngularJS,请参阅位于

    的文档,只需注入$filter并按如下方式使用它:

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

    你也可以在模板中格式化输出,更多关于过滤器的信息。

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


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

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

    使用ECMAScript国际化API:


    您可以使用力矩js:

    时刻(日期)。格式('mm')

    示例:
    moment('2019-10-29T21:08')。格式('mm')=>08


    希望它能帮助某人

    仅仅是为了相加,
    .getMinutes()
    的返回值是一个整数,您不能从整数访问
    .length
    。要实现这一点(处理日期时不建议这样做),请将数字解析为字符串,然后检查长度。例如:
    date.getMinutes().toString().length
    我喜欢这个解决方案,但IE8和早期版本似乎不支持
    substr
    的负数。它完全符合我的要求。这个
    @user1063287是什么意思?如果不是,它是一个内联的statement@user1063287它的意思是:“如果getMinutes()小于10,返回一个0,如果大于,返回一个空字符串。@user1063287请参见此处(条件?true:false)在PHP中,您可以省略JS中的true语句(条件?:false),然后使用(条件| false)三元运算符使用切片(-2)这是违反直觉的,但我喜欢它。这是被贬低的-当一个人无论如何都在使用时刻时,不要使用非常好的答案,谢谢:-)这样一个伟大的答案哇!这就是我一直在寻找的答案,虽然我真的很喜欢这个答案,但不幸的是它对我不起作用(在Tasker Jslet中,记录在案).被接受的答案是变通的,但很简单!于2020年11月来到这里,这是最安全的答案!
    
    const twoDigitMinutes = date.toLocaleString('en-us', { minute: '2-digit' });
    
    String(date.getMinutes()).padStart(2, "0");
    
    $filter('date')(value, 'HH:mm')
    
    var d = new Date();
    var minutes = d.getMinutes().toString().replace(/^(\d)$/, '0$1');
    
    var date = new Date("2012-01-18T16:03");
    
    var minutes = date.toTimeString().slice(3, 5); 
    var hours   = date.toTimeString().slice(0, 2); 
    
    const twoDigitMinutes = date.toLocaleString('en-us', { minute: '2-digit' });
    
    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);