如果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之后)。
如果我的阅读是正确的,根据相关规范,似乎这是故意的。
我无法理解为什么会这样指定,但它就是这样。 如果你想做零填充,看起来你只需要自己加上它。
它以这种方式为我工作
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