如果JavaScript小于10,则在JavaScript之前显示小时零

使用时:

Date.toLocaleTimeString()

有什么办法让它显示01:42:35 PM而不是1:42:35 PM

我曾尝试加入:

Date.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit', second: '2-digit'})

但它仍然只产生一个数字小时(除非它在10之后)。


如果我的阅读是正确的,根据相关规范,似乎这是故意的。

  • 否则,如果f是“2位数”,那么
  • 设fv为FormatNumber(nf2,v)。
  • 如果fv的length属性大于2,则让fv为包含最后两个字符的fv的子字符串。
  • 我无法理解为什么会这样指定,但它就是这样。 如果你想做零填充,看起来你只需要自己加上它。


    它以这种方式为我工作

    var datelocal = new Date(2016, 01, 01, 1, 1, 1).toLocaleTimeString(navigator.language, {
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit'
    });
    

    我也附有一个重拳。

    注意 :您必须提供新的Date()而不是将日期参数传递给Date方法以获取当前日期。


    我倾向于在我的JavaScript项目中使用Moment.js,而不是依靠Date.prototype.toLocaleTimeString或类似的函数来获取这种情况下的正确格式。 Moment.js是一个JavaScript库,专门用于解析,验证,操作和显示日期。 要按照所描述的格式获取时间字符串,可以使用:

    var s = moment().format('hh:mm:ss A');
    console.log(s);
    

    这使用当前日期。 如果你想使用另一个日期,你也可以这样做:

    var s = moment(new Date(2016, 8, 19, 1, 10)).format('hh:mm:ss A');
    console.log(s);
    

    它可以为您节省执行您自己的零填充和其他类似工作的麻烦。

    链接地址: http://www.djcxy.com/p/36053.html

    上一篇: JavaScript display hour with a zero before it if it is less than 10

    下一篇: Identity Server 3 Facebook Login Get Email