繁体   English   中英

Javascript:将日期字符串正确转换为日期 object

[英]Javascript: convert date string to date object correctly

我有字符串日期,例如“20200321082245”。 我正在尝试通过将其拆分并创建日期 object 将其通过纯 Javaccript 代码转换为日期 object 例如:

'20200321082245' --> 2020-03-21 08:22:45

'202003210.2245' --> 必须排除这种带点的情况。 我必须返回一个 null 日期 object

我怎样才能正确转换它? 由于 syncDate 也可以包含一个点,例如一个双数也不是 integer。

我的代码:

        function convertDate(syncDate){
            var date = null;
            if(syncDate){
            try {
                if (!isNaN(syncDate)) {
                        var d = syncDate.toString().match(/.{1,2}/g)
                        var len = d.length;
                        var dateString = '';
                        switch(len){
                            case 2:
                                dateString = d[0]+d[1];
                            case 3:
                                dateString = d[0]+d[1] +'-'+d[2]
                            case 4:
                                dateString = d[0]+d[1] +'-'+d[2]+'-'+d[3]
                            case 5:
                                dateString = d[0]+d[1] +'-'+d[2]+'-'+ d[3]+' '+d[4]
                            case 6:
                                dateString = d[0]+d[1] +'-'+d[2]+'-'+d[3]+' '+d[4]+':'+d[5];
                            case 7:
                                dateString = d[0]+d[1] +'-'+d[2]+'-'+d[3]+' '+d[4]+':'+d[5]+':'+d[6];
                        }
                      if(dateString)
                         date = new Date(dateString);
                    }
                } catch (e) {}
            }

            return date;
         }
var value = '20200321082245';
var dateRx = /(^\d\d\d\d)(\d\d)(\d\d)(\d\d)?(\d\d)?(\d\d)?/;
if (dateRx.test(value)) {
    return new Date(value.replace(dateRx, '$1-$2-$3 $4:$5:$6'));
}
return null;

您可以检查字符串是否包含. 通过使用包含属性。

if(string.includes('.')){
    return null;
}

关于将其转换为日期 object,有几种方法可以实现这一点。 看这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM