从dateTime字符串转换为javascript日期对象

时间:2016-12-25 16:31:33

标签: javascript regex

我使用此方法将日期字符串转换为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。 我对正则表达式并不是很好,因此我需要帮助 - 谢谢!

2 个答案:

答案 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);