Кажется, ваша проблема в том, что вы ожидаете строку типа "/ Date (-62135596800000) /", но получаете что-то еще. Поэтому проверяйте ввод перед вызовом строковых методов для его анализа, например,
function formatDate(dateVal) {
// Test for string in required format
if (!/^\/Date\([+-]?\d{1,16}\)\/$/.test(dateVal)) {
return; // undefined
}
let date = new Date(parseInt(dateVal.replace('/Date(', '')))
let month = date.getMonth() + 1;
let day = date.getDate();
let year = ('000' + date.getFullYear()).slice(-4);
return (day > 9 ? day : "0" + day) + "/" +
(month > 9 ? month : "0" + month) + "/" +
year;
}
// Simple tests
['/Date(-62135596800000)/',
null,
NaN,
'sweet',
1561853541934,
'/Date(1561853541934)/'].forEach(
v => console.log(v + ': ' + formatDate(v))
);
Затем в вызывающей программе вы можете проверить, вернули ли вы строку (успех) или undefined , которая указывает на неверный ввод, с которым вам придется иметь дело.