2016-12-25 163 views
1

我为了一个日期字符串转换为JavaScript日期对象来使用这个方法:从日期时间字符串转换为JavaScript日期对象

function convertToDateOrUndefined(dateString) { 
    if (dateString instanceof Date || dateString == null) { 
     return undefined; 
    } 
    return new Date(dateString.replace(/(\d{2})\.(\d{2})\.(\d{4})/,'$3-$2-$1')); 
} 

目前我有这个日期字符串“DD.MM.YYYY HH:MM '我也需要一个函数来将这个字符串转换成js日期对象。 我并不擅长正则表达式,所以我需要帮助 - 谢谢!

回答

0

regex解决方案。希望这有助于

var dateString = '25.12.2016 00:00'; 
 
var formattedDateString = dateString.split(' ')[0].split('.').reverse().join('-'); 
 

 
var dateObj = new Date(formattedDateString); 
 

 
console.log(dateObj);

1

看待当前正则表达式。你知道它会从你的dd.MM.yyyy格式返回一个日期,对吧?所以,你可以认为这三个(\d{n})代表日,月和年(\d指一个数字,{n}意味着n倍,所以\d{2}平均两位数;在()组各部分,所以我们可以稍后再引用它们)。

在第二个字符串中,我们从第一个字符串获取部分,并对它们进行重新排序。 $1是第一组(()内的正则表达式的一部分),$2是第二基等

从那里,一直到溶液是简单的。我们只需要添加时间部分:

new Date(dateString.replace(/(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2})/,'$3-$2-$1 $4:$5')); 
相关问题