我的字符串日期格式为YYYYMMDD(20170603)。此字符串中没有连字符,它只是一个字符串。我想转换此字符串,以便日期构造函数可以使用它。我想做以下new Date(2017,06,03)
这样做最有效的方法是什么?注意:我希望我的日期为YYYY MM DD格式
答案 0 :(得分:1)
你可以使用substring():
new Date( parseInt( str.substring(0,4) ) ,
parseInt( str.substring(4,6) ) -1 ,
parseInt( str.substring(6,8) )
);
与评论显示一样,你可以省略parseInt:
new Date( str.substring(0,4) ,
str.substring(4,6) - 1 ,
str.substring(6,8)
);
答案 1 :(得分:0)
您可以使用String.prototype.slice()
let month = +str.slice(4, 6);
let date = new Date(str.slice(0, 4), !month ? month : month -1, str.slice(6))
答案 2 :(得分:0)
var dateStr = "20170603";
var match = dateStr.match(/(\d{4})(\d{2})(\d{2})/);
var date = new Date(match[1] + ',' + match[2] + ',' + match[3])
console.log(date);