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:正确地将日期字符串转换为日期对象的主要内容,如果未能解决你的问题,请参考以下文章