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);
答案 0 :(得分:242)
var date = new Date("2012-01-18T16:03");
console.log( (date.getMinutes()<10?'0':'') + date.getMinutes() );
答案 1 :(得分:169)
对于这些答案来说并不是很好,即使是最高职位上升也是如此。在这里,跨浏览器和更干净的int /字符串转换。另外我的建议是不要使用变量名称'date'和date = Date(...)
这样的代码,你在很大程度上依赖于语言区分大小写(它可以工作,但是当你使用不同的服务器/浏览器代码时有风险)不同规则的语言)。因此,假设var current_date
中的javascript日期:
mins = ('0'+current_date.getMinutes()).slice(-2);
该技术将{0}的最右边2个字符(slice(-2))
置于字符串值getMinutes()
之前。所以:
"0"+"12" -> "012".slice(-2) -> "12"
和
"0"+"1" -> "01".slice(-2) -> "01"
答案 2 :(得分:14)
另一个简短的方法是使用以下方法用前导零填充分钟:
String(date.getMinutes()).padStart(2, "0");
含义:将字符串设为两个字符长,如果缺少字符,则在此位置设置0
。
答案 3 :(得分:13)
优雅的ES6功能,可将日期格式化为hh:mm:ss
:
const leadingZero = (num) => `0${num}`.slice(-2);
const formatTime = (date) =>
[date.getHours(), date.getMinutes(), date.getSeconds()]
.map(leadingZero)
.join(':');
答案 4 :(得分:12)
如果可能,我想提供一个更简洁的解决方案。接受的答案非常好。但我会这样做。
Date.prototype.getFullMinutes = function () {
if (this.getMinutes() < 10) {
return '0' + this.getMinutes();
}
return this.getMinutes();
};
现在,如果你想使用它。
console.log(date.getFullMinutes());
答案 5 :(得分:8)
我建议:
var minutes = data.getMinutes();
minutes = minutes > 9 ? minutes : '0' + minutes;
这是一个函数调用较少。考虑性能总是好的。 它也很短;
答案 6 :(得分:4)
你应该检查它是否小于10 ...不寻找它的长度,因为这是一个数字而不是一个字符串
答案 7 :(得分:4)
另一种选择:
var dateTime = new Date();
var minutesTwoDigitsWithLeadingZero = ("0" + dateTime.getMinutes()).substr(-2);
答案 8 :(得分:3)
我假设您需要将值作为字符串。您可以使用以下代码。 它将始终返回给你两位数的分钟作为字符串。
var date = new Date(date);
var min = date.getMinutes();
if (min < 10) {
min = '0' + min;
} else {
min = min + '';
}
console.log(min);
希望这有帮助。
答案 9 :(得分:3)
数字没有长度,但您可以轻松地将数字转换为字符串,检查长度,然后在必要时添加0:
var strMonth = '' + date.getMinutes(); if (strMonth.length == 1) { strMonth = '0' + strMonth; }
答案 10 :(得分:3)
.length
未定义,因为getMinutes
返回的是数字,而不是字符串。数字没有length
属性。你可以做到
var m = "" + date.getMinutes();
将其设为字符串,然后检查长度(您需要检查length === 1
,而不是0)。
答案 11 :(得分:2)
我在这里看不到任何ES6答案,所以我将使用StandardJS格式添加一个
// ES6 String formatting example
const time = new Date()
const tempMinutes = new Date.getMinutes()
const minutes = (tempMinutes < 10) ? `0${tempMinutes}` : tempMinutes
答案 12 :(得分:1)
您可以使用moment js:
moment(date).format('mm')
示例:moment('2019-10-29T21:08').format('mm') ==> 08
希望它对某人有帮助
答案 13 :(得分:0)
$(".min").append( (date.getMinutes()<10?'0':'') + date.getMinutes() );
JS的新手,所以这非常有帮助 大多数人看这个问题也是新的 所以这就是我在div中显示的名称“class =”min“
希望它可以帮助某人
答案 14 :(得分:0)
我通常使用这段代码:
var start = new Date(timestamp),
startMinutes = start.getMinutes() < 10 ? '0' + start.getMinutes() : start.getMinutes();
它与@ogur接受的答案非常相似,但在不需要0的情况下不会连接空字符串。不确定它是否更好。只是另一种方法!
答案 15 :(得分:0)
两位数分钟使用:
new Date().toLocaleFormat("%M")
答案 16 :(得分:0)
这怎么样?这个对我有用! :)
var d = new Date();
var minutes = d.getMinutes().toString().replace(/^(\d)$/, '0$1');
答案 17 :(得分:0)
另一个获得两位数字的分钟或小时的选项。
library(Rcpp)
library(gRbase)
vec=0:13
a=combnPrim(vec,4)
cppFunction("
NumericVector r_test(NumericMatrix a, Function comp, Function fct,Function
tempf, Function combnPrim, NumericVector Fv, NumericVector vec, Function
Subset){
NumericVector if1(4);
NumericVector if2(2);
NumericVector if3(4);
NumericVector if4(4);
NumericVector seq(14);
NumericMatrix b(2,45);
NumericMatrix c(4,70);
for (int i1=0; i1<=a.ncol()-1; i1++){
if1=a (_, i1);
b=combnPrim(Subset(vec,-(if1)),2);
for (int i2=0; i2<=b.ncol()-1; i2++){
if2=b (_, i2);
c=combnPrim(Subset(Subset(vec,-(if1)),-(if2)),4);
for (int i3=0; i3<=c.ncol()-1; i3++){
if3=c (_, i3);
if4=Subset(Subset(Subset(vec,-(if1)),-(if2)),-(if3));
seq=tempf(if1,if2,if3,if4);
}}}return if1;}")
Fv=7.001327
setwd("D:/STAT 602")
sourceCpp("Subset.cpp")
fct=function(seq,data,fact){
return(anova(lm(data[seq]~as.factor(fact)))$`F value`[1])
}
tempf=function(x1,x2,x3,x4){
return(c(x1,x2,x3,x4))
}
comp=function(x,y){
return(x>y)
}
r_test(a,comp, fct, tempf, combnPrim, Fv, vec, Subset)
答案 18 :(得分:0)
使用ECMAScript国际化API,more info:
const twoDigitMinutes = date.toLocaleString('en-us', { minute: '2-digit' });
答案 19 :(得分:0)
var d = new Date(date);
var dd = d.getDate();
var MM = d.getMonth();
var mm = d.getMinutes();
var HH = d.getHours();
// Hour
var result = ("0" + HH).slice(-2);
// Minutes
var result = ("0" + mm).slice(-2);
// Month
var result = ("0" + MM).slice(-2);
答案 20 :(得分:-2)
如果您在项目中使用AngularJS,只需注入$ filter并像以下一样使用它:
$filter('date')(value, 'HH:mm')
您还可以在模板中格式化输出,更多信息在过滤器here上。