var date = "2012-01-18T16:03";
var date = new Date(date);
console.log(date.getMinutes());
console.log(date.getMinutes().length)
这将返回 3。
- 我如何让它返回'03'?
- 为什么
.length
返回未定义?
我试过这个,但没有用:
如果strlen == 1
那么num = ('0' + num);
var date = "2012-01-18T16:03";
var date = new Date(date);
console.log(date.getMinutes());
console.log(date.getMinutes().length)
这将返回 3。
.length
返回未定义?我试过这个,但没有用:
如果strlen == 1
那么num = ('0' + num);
var date = new Date("2012-01-18T16:03");
console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() );
oop,这些答案都不是很好,即使是最高职位。在这里,跨浏览器和更清晰的 int/string 转换。另外,我的建议是不要在代码中使用变量名称“日期”,例如date = Date(...)
您严重依赖语言区分大小写的地方(它可以工作,但是当您使用具有不同规则的不同语言的服务器/浏览器代码工作时会有风险) . 因此,假设 var 中的 javascript 日期current_date
:
mins = ('0'+current_date.getMinutes()).slice(-2);
该技术是将最右边的 2 个字符(slice(-2))
“0”附加到 的字符串值上getMinutes()
。所以:
"0"+"12" -> "012".slice(-2) -> "12"
和
"0"+"1" -> "01".slice(-2) -> "01"
另一种简短的方法是使用前导零填充分钟:
String(date.getMinutes()).padStart(2, "0");
含义:使字符串长度为两个字符,如果缺少字符,则0
在此位置设置。
优雅的 ES6 函数将日期格式化为hh:mm:ss
:
const leadingZero = (num) => `0${num}`.slice(-2);
const formatTime = (date) =>
[date.getHours(), date.getMinutes(), date.getSeconds()]
.map(leadingZero)
.join(':');
如果可以的话,我想为这个问题提供一个更简洁的解决方案。接受的答案非常好。但我会这样做。
Date.prototype.getFullMinutes = function () {
if (this.getMinutes() < 10) {
return '0' + this.getMinutes();
}
return this.getMinutes();
};
现在如果你想使用这个。
console.log(date.getFullMinutes());