我想将20170603转换为日期。我想使用函数new Date(2017,06,03),但如何从日期中提取数字?我尝试使用
new Date(parseInt(startDate.substr(0,4)), parseInt(startDate.substr(5,6)) -1, parseInt(startDate.substr(6,8)))
然而,这给了我非常奇怪的价值观。如何将确切的数字提取到日期函数中?
答案 0 :(得分:3)
substr
函数的第二个参数是您要提取的字符串的长度;
new Date(parseInt(startDate.substr(0,4)),
parseInt(startDate.substr(4,2)) - 1,
parseInt(startDate.substr(6,2)));
答案 1 :(得分:3)
replace()
与RegExp
const date_str = "20170603";
console.log( new Date( date_str.replace( /(\d{4})(\d{2})(\d{2})/, "$1/$2/$3" ) ) );

答案 2 :(得分:1)
如果使用外部库不是问题。我建议使用moment.js
有许多方法可供选择。对于你的情况。
var d = new moment("20170603 ", "YYYYMMDD").toDate();
我正在使用这个lib来解决很多挑战。
答案 3 :(得分:0)
按字符数切片:
new Date(my_str.match(/(....)(..)(..)/).slice(1,4).join('/'))