Mar*_*ndy 126 javascript
var date = "2012-01-18T16:03";
var date = new Date(date);
console.log(date.getMinutes());
console.log(date.getMinutes().length)
Run Code Online (Sandbox Code Playgroud)
这返回3.
.length返回未定?我试过这个,但它不起作用:
如果strlen == 1那么num = ('0' + num);
ogu*_*gur 255
var date = new Date("2012-01-18T16:03");
console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() );
Run Code Online (Sandbox Code Playgroud)
Bam*_*bam 185
哎呀这些答案都不是很好,即使是最高职位上升也是如此.在这里,跨浏览器和更干净的int /字符串转换.另外我的建议是不要使用变量名称'date'和代码,例如date = Date(...)你在很大程度上依赖于语言区分大小写(它可以工作,但是当你使用不同语言的服务器/浏览器代码处理不同的规则时会有风险) .所以假设var中的javascript日期current_date:
mins = ('0'+current_date.getMinutes()).slice(-2);
Run Code Online (Sandbox Code Playgroud)
该技术将最右边的2个字符(slice(-2))"0"放在字符串值的前面getMinutes().所以:
"0"+"12" -> "012".slice(-2) -> "12"
Run Code Online (Sandbox Code Playgroud)
和
"0"+"1" -> "01".slice(-2) -> "01"
Run Code Online (Sandbox Code Playgroud)
Kai*_*ack 23
另一个简短的方法是使用以下前导零填充分钟:
String(date.getMinutes()).padStart(2, "0");
Run Code Online (Sandbox Code Playgroud)
含义:将字符串设为两个字符长,如果缺少字符,则设置0在此位置.
请参阅str.padStart上的文档(targetLength,padString)
sf7*_*f77 16
优雅的ES6功能将日期格式化为hh:mm:ss:
const leadingZero = (num) => `0${num}`.slice(-2);
const formatTime = (date) =>
[date.getHours(), date.getMinutes(), date.getSeconds()]
.map(leadingZero)
.join(':');
Run Code Online (Sandbox Code Playgroud)
Kap*_*all 12
如果可以的话,我想为这个问题提供一个更简洁的解决方案.接受的答案非常好.但我会这样做的.
Date.prototype.getFullMinutes = function () {
if (this.getMinutes() < 10) {
return '0' + this.getMinutes();
}
return this.getMinutes();
};
Run Code Online (Sandbox Code Playgroud)
现在,如果你想使用它.
console.log(date.getFullMinutes());
Run Code Online (Sandbox Code Playgroud)
use*_*569 10
我建议:
var minutes = data.getMinutes();
minutes = minutes > 9 ? minutes : '0' + minutes;
Run Code Online (Sandbox Code Playgroud)
它是一个函数调用较少.考虑性能总是好的.它也很短;
使用 ECMAScript 国际化 API,更多信息:
const twoDigitMinutes = date.toLocaleString('en-us', { minute: '2-digit' });
Run Code Online (Sandbox Code Playgroud)
我假设您需要字符串形式的值。您可以使用下面的代码。它总是会返回给你两位数字的分钟作为字符串。
const date_string = "2012-01-18T16:03";
const date = new Date(date_string);
let min = date.getMinutes();
if (min < 10) { // or min = min < 10 ? '0' + min : min;
min = '0' + min;
} else {
min = min + '';
}
console.log(min);Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
小智 6
这个怎么样?这个对我有用!:)
var d = new Date();
var minutes = d.getMinutes().toString().replace(/^(\d)$/, '0$1');
Run Code Online (Sandbox Code Playgroud)
另外一个选项:
var dateTime = new Date();
var minutesTwoDigitsWithLeadingZero = ("0" + dateTime.getMinutes()).substr(-2);
Run Code Online (Sandbox Code Playgroud)