На картинке вы увидите передаваемое значение и все строковые функции, которые я пробовал, но, похоже, ничего не работает. Я даже пытался поместить его в переменную с помощью новой даты (d), но получил «неверную дату». Я также попытался использовать trim (). Если я жестко закодировал строку даты в качестве значения для «d», то все работало как ожидалось. Может кто-нибудь сообщить мне, что я делаю не так? Изображение: JS console.log значений
function convertDate2ISO(dateToConvert){
var strDate = dateToConvert.trim();
if (dateToConvert.indexOf("-") > 0) { strDate = dateToConvert.replace(/-/g, ' ');}
if (dateToConvert.indexOf("/") > 0) {
var substrValue = dateToConvert.substr(0,3);
var indexOfValue = dateToConvert.indexOf('/');
var toStringIndexOfValue = dateToConvert.toString().indexOf('/');
var sliceValue = dateToConvert.slice(0,2);
console.log("Incoming value (dateToConvert): " + dateToConvert + "\r\n" + "Using dateToConvert.substr(0,3): " +substrValue+ "\r\nUsing dateToConvert.indexOf('/'): " +indexOfValue+ "\r\nUsing dateToConvert.toString().indexOf('/'): " +toStringIndexOfValue+ "\r\nUsing dateToConvert.slice(0,2): " +sliceValue+ "\r\nUsing dateToConvert.length: " +dateToConvert.length );
//was trying to use dateToConvert.indexOf('/') to test on, but result was unexpected
//add 0 to begining if month is a singel digit
strDate = "0" + strDate;
}
var myDate = new Date(strDate);
myDate.toISOString(); //"2011-23-12T15:28:46.493Z
return myDate
}
Значение по умолчанию для входящего параметра: ...
var myDateObj = new Date();
var strDTGReceived = myDateObj.toLocaleDateString();
Вызов функции ...
var dtISOReceivedDate = convertDate2ISO(strDTGReceived);
Значения, которые я получаю, являются ...
Incoming Parameter (dateToConvert): 2/18/2020
Using dateToConvert.substr(0,3): 2
dateToConvert.indexOf('/'): 3
Using dateToConvert.toString().indexOf('/'): 3
Using dateToConvert.slice(0,2): 2
Using dateToConvert.length: 14