使用时:
Date.toLocaleTimeString()
有没有办法让它显示01:42:35 PM
而不是1:42:35 PM
?
我尝试添加:
Date.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit', second: '2-digit'})
但它仍然只产生一个数字小时(除非它是在10之后)。
答案 0 :(得分:3)
如果我的阅读是正确的,根据creditCardVerification
,这似乎是故意的。
- 如果f是“2位数”,那么
- 设fv为FormatNumber(nf2,v)。
- 如果 fv的length属性大于2,让fv为fv的子串 包含最后两个字符。
我无法理解为什么会这样指定,但确实如此。如果你想做零填充,看起来你只需要自己添加它。
答案 1 :(得分:0)
它以这种方式为我工作
var datelocal = new Date(2016, 01, 01, 1, 1, 1).toLocaleTimeString(navigator.language, {
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
});
我还附上了plunker。
注意:您必须提供新的Date(),而不是将日期参数传递给Date方法以获取当前日期。
答案 2 :(得分:0)
我倾向于在我的JavaScript项目中使用Moment.js,而不是依赖Date.prototype.toLocaleTimeString或类似的函数来获得正确的格式。 Moment.js是一个JavaScript库,专门用于解析,验证,操作和display日期。要以您描述的格式获取时间字符串,您可以使用:
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);
它可以省去你自己做零填充和其他类似事情的麻烦。