У меня есть строковая дата, например, «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;
}