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