如何将没有分隔符的字符串转换为日期?

时间:2017-07-14 03:21:43

标签: javascript date

我想将20170603转换为日期。我想使用函数new Date(2017,06,03),但如何从日期中提取数字?我尝试使用

 new Date(parseInt(startDate.substr(0,4)), parseInt(startDate.substr(5,6)) -1, parseInt(startDate.substr(6,8))) 

然而,这给了我非常奇怪的价值观。如何将确切的数字提取到日期函数中?

4 个答案:

答案 0 :(得分:3)

substr函数的第二个参数是您要提取的字符串的长度;

new Date(parseInt(startDate.substr(0,4)), 
         parseInt(startDate.substr(4,2)) - 1, 
         parseInt(startDate.substr(6,2)));

substr Method (String) (JavaScript)

答案 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('/'))
相关问题