无法将数据“ 19-10-2002”转换为日期

时间:2020-08-04 10:33:52

标签: javascript angular typescript date

我需要以(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 个答案:

答案 0 :(得分:4)

你可以做

console.log(
"19-10-2002".split('-').reverse().join('-')
)

答案 1 :(得分:0)

如果要将字符串传递给“ formatDate”,则必须采用“ ISO日期时间”格式(完整格式为“ YYYY-MM-DDThh:mm:ss.sTZD”,但是您可以删除任何从末尾开始使用,并使用“ YYYY”或“ YYYY-MM-DD”)。因此您传递给它的字符串不会被识别为有效的输入日期。 这样您就可以使用Dave的代码

答案 2 :(得分:0)

这是自定义日期格式化程序功能,该功能接受日期,格式和分隔符/分隔符,以将传递的日期转换为传递的格式。

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', '/');