从日期时间字符串转换为JavaScript日期对象
问题描述:
我为了一个日期字符串转换为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日期对象。 我并不擅长正则表达式,所以我需要帮助 - 谢谢!
答
非regex
解决方案。希望这有助于
var dateString = '25.12.2016 00:00';
var formattedDateString = dateString.split(' ')[0].split('.').reverse().join('-');
var dateObj = new Date(formattedDateString);
console.log(dateObj);
答
看待当前正则表达式。你知道它会从你的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'));