Javascript将日期字符串转换为对象

时间:2018-04-28 06:02:49

标签: javascript date

我试图将字符串格式的日期转换为JavaScript中的Date对象。该日期来自openweathermap.org API,它以下列格式提供日期字符串:

' 2018-04-28 09:00:00'或者' yyyy-mm-dd hh:mm:ss'

我知道JavaScript Date类可以采用其他字符串格式的日期,但是当我尝试使用它时,这个会返回NaN。如何转换日期字符串,如上所述,并将其轻松转换为JavaScript对象?谢谢!

2 个答案:

答案 0 :(得分:1)

由于您在将字符串直接转换为日期时获得NaN。您可以在空格-:上拆分字符串,然后将值传递给日期构造函数并生成日期对象。



const str = `2018-04-28 09:00:00`;
const [date, time] = str.split(' ');
const [year, month, day] = date.split('-');
const [hh, mm, sec] = time.split(':');
const dateObj = new Date(year, month - 1, day, hh, mm, sec);
console.log(dateObj);




正如@RobG所指出的,这也可以使用正则表达式完成。



const str = `2018-04-28 09:00:00`;
var b = str.split(/\D/);
var date = new Date(b[0],b[1]-1,b[2],b[3],b[4],b[5]);
console.log(date);






const str = `2018-04-28 09:00:00`,
      date = new Date(...(str.split(/\D/).map((v,i)=>i==1?--v:v)));
console.log(date);




答案 1 :(得分:0)

试试new Date(str)

d = new Date("2018-04-20 09:00:00")
Fri Apr 20 2018 09:00:00 GMT+0800 (Hong Kong Standard Time)
d.getDate()
20

参考:https://www.ecma-international.org/ecma-262/6.0/#sec-date-time-string-format