Javascript:正确地将日期字符串转换为日期对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript:正确地将日期字符串转换为日期对象相关的知识,希望对你有一定的参考价值。

我有一个日期字符串,例如'20200321082245'。我试图通过纯Javaccript代码将其转换为一个日期对象,通过分割它并创建一个日期对象为例。

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

'202003210.2245' --> 这种带点的情况必须被排除。我必须返回一个空的日期对象

我怎么才能正确转换呢?因为syncDate也可以包含一个点,例如一个双数也不是整数。

我的代码。

        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 = /(^dddd)(dd)(dd)(dd)?(dd)?(dd)?/;
if (dateRx.test(value)) {
    return new Date(value.replace(dateRx, '$1-$2-$3 $4:$5:$6'));
}
return null;
另一答案

你可以检查这个字符串是否包含一个 . 通过使用 包括 属性。

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

关于将其转换为日期对象,有几种方法可以实现。请看这里

以上是关于Javascript:正确地将日期字符串转换为日期对象的主要内容,如果未能解决你的问题,请参考以下文章

如何正确地将数据帧的所有日期时间列转换为 iso 格式

将字符串转换为日期和日期时间

正确地将 info.plist 条目转换为 NS* 类型

将日期字符串转换为正确的格式

将 Json 日期字符串转换为 JavaScript 日期对象

如何将 JavaScript 日期转换为 MySQL 日期时间格式? [复制]