我需要以(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
有人可以帮助我吗?
答案 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', '/');