2016-11-24 71 views
0

我试图找到这种格式“20161126 00:00”这样从“20161126 00:00”字符串创建日期在JavaScript

创建一个字符串在JavaScript中新日期的最快方法

我使用一些分裂这样的:

parseDateTime = (dateTime) -> 
     dateArray = dateTime.split(" "); 
     date = dateArray[0] 
     time = dateArray[1] 
     year = 
     month = 
     day = 
     hour = time.split(':')[0] 
     minute = time.split(':')[1] 

,但我希望你能找到一个快捷和简单的方式。

+1

是'20161126' alsways的'YYYY:MM:dd'格式在此上下文中? –

+0

是的,格式总是相同的 –

+0

如果你可以使用它,momentjs将会是一个简单的方法 – Luka

回答

1

使用正则表达式来获取零部件,然后创建一个新日期:

var parts = dateTimeStr.match(/^(\d{4})(\d\d)(\d\d) (\d\d):(\d\d)$/); var d = new Date(+parts[1], +parts[2] - 1, +parts[3], +parts[4], +parts[5]);

只有这么简单,如果你的格式是固定的。

1

如果yyyy:mm:dd日期格式始终相同,则可以使用substring。 请注意,此方法提取“start”和“end”之间的字符串中的字符,不包括“end”本身。

var dateTime = "20161126 00:00"; 
 
dateArray = dateTime.split(" "); 
 
     date = dateArray[0]; 
 
     time = dateArray[1]; 
 
     year = date.substring(0, 4); 
 
     month = date.substring(4, 6); 
 
     day = date.substring(6, 8); 
 
     hour = time.split(':')[0]; 
 
     minute = time.split(':')[1]; 
 
     console.log("the dateTime variable: "+dateTime+", date: "+date+", time: "+time+", year: "+year+", month: "+month+", day: "+day+", hour: "+hour+", minute: "+minute);