Невозможно преобразовать данные "19-10-2002" в дату - PullRequest
0 голосов
/ 04 августа 2020

Мне нужно передать параметр даты в формате (dd-MM-yyyy) и преобразовать в этот формат (yyyy-MM-dd) для отправки API.

Итак, я делаю это:

convert(date:string){
date //is in the format(dd-MM-yyyy)

date =formatDate(date , "yyyy-MM-dd", 'en_US');

, и я получаю эту ошибку:

 Unable to convert "19-10-2002" into a date

Кто-нибудь может мне помочь?

Ответы [ 3 ]

4 голосов
/ 04 августа 2020

Вы можете просто сделать

console.log(
"19-10-2002".split('-').reverse().join('-')
)
0 голосов
/ 04 августа 2020

Вот настраиваемая функция форматирования даты, которая принимает дату, формат и разделитель / разделитель для преобразования переданной даты в переданный формат.

function dateFormatter(date, format, delimiter) {
  const dateItems = date.split(delimiter)
  const formatItems = format.toLowerCase().split(delimiter);
  const day = formatItems.indexOf('dd');
  const month = formatItems.indexOf('mm');
  const year = formatItems.indexOf('yyyy');
 
  const formattedDate = ([dateItems[day], dateItems[month], dateItems[year]]).join(delimiter)
  console.log(formattedDate)
  return formattedDate
}

// run example
dateFormatter('02-03-2020', 'YYYY-MM-DD', '-');
dateFormatter('02/03/2020', 'MM/DD/YYYY', '/');
0 голосов
/ 04 августа 2020

Если вы хотите передать строку в «formatDate», она должна быть в формате «дата-время ISO» (полный формат - «ГГГГ-ММ-ДДTчч: мм: сс.sTZD», но вы можете отбросить любой часть с конца и используйте как «ГГГГ» или «ГГГГ-ММ-ДД»). поэтому строка, которую вы ему передаете, не распознается как допустимая дата ввода. так что вы можете использовать код Дэйва

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...