我使用此方法将日期字符串转换为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'));
}
目前我有这个dateTime字符串'dd.MM.yyyy HH:mm',我还需要一个函数将此字符串转换为js date obejct。 我对正则表达式并不是很好,因此我需要帮助 - 谢谢!
答案 0 :(得分: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'));
答案 1 :(得分: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);