DatePipe.transform 显示 'dd-MM-yyyy' 的 InvalidPipeArgument
DatePipe.transform show InvalidPipeArgument for 'dd-MM-yyyy'
最近 Angular DatePipe 显示 InvalidPipeArgument 错误,但字符串日期接缝是正确的。
任何人都可以看到一些错误吗?这是我使用 Typescript 和 Angular 6
的代码
let datePipe: DatePipe = new DatePipe("es-ES");
let dia_sele: string = "";
try {
let fecha_formateada = this.datePipe.transform('23-01-2019', 'dd-MM-yyyy','es-ES');
dia_sele = fecha_formateada;
} catch (e) {
dia_sele = "";
console.log( "->err:" + e);
}
这是 Chrome Windows 在控制台中显示的错误:
core.js:14597 ERROR Error: Uncaught (in promise): Error: InvalidPipeArgument: 'Unable to convert "23-01-2019" into a date' for pipe 'DatePipe'
Error: InvalidPipeArgument: 'Unable to convert "23-01-2019" into a date' for pipe 'DatePipe'
at invalidPipeArgumentError (common.js:4013)
at DatePipe.transform
不确定您要在这里实现什么。因为你的输入日期和输出日期格式一样。
但是如果您需要其他格式的日期,该解决方案将起作用
为什么不能用??
In chrome '23-01-2019'
不是有效的日期字符串。甚至
new Date('23-01-2019')
在 chrome 中给出 Invalid Date
消息(未在其他浏览器中检查)。你可以在控制台试试。
解决方法:
因此,您也可以使用其他分隔符格式化日期,例如 /
,然后在该日期执行 DatePipe
转换。有关格式设置的更多信息 here
示例:
let myDate = "23-01-2019".replace(/(\d{2})-(\d{2})-(\d{4})/, "//")
let newDate = this.dp.transform(myDate, 'yyyy-MM-dd', 'es-ES');
- 您可以尝试此代码 datetime-local 类型
this.myDate = this.datePipe.transform(this.myDate, 'yyyy-MM-ddThh:mm:ss');
console.log(this.myDate)
this.form.patchValue({date_of_spent:this.myDate});
- 试试这个日期类型的代码
this.myDate = this.datePipe.transform(this.myDate, 'yyyy-MM-dd');
console.log(this.myDate)
this.form.patchValue({date_of_spent:this.myDate});`enter code here`
最近 Angular DatePipe 显示 InvalidPipeArgument 错误,但字符串日期接缝是正确的。 任何人都可以看到一些错误吗?这是我使用 Typescript 和 Angular 6
的代码let datePipe: DatePipe = new DatePipe("es-ES");
let dia_sele: string = "";
try {
let fecha_formateada = this.datePipe.transform('23-01-2019', 'dd-MM-yyyy','es-ES');
dia_sele = fecha_formateada;
} catch (e) {
dia_sele = "";
console.log( "->err:" + e);
}
这是 Chrome Windows 在控制台中显示的错误:
core.js:14597 ERROR Error: Uncaught (in promise): Error: InvalidPipeArgument: 'Unable to convert "23-01-2019" into a date' for pipe 'DatePipe'
Error: InvalidPipeArgument: 'Unable to convert "23-01-2019" into a date' for pipe 'DatePipe'
at invalidPipeArgumentError (common.js:4013)
at DatePipe.transform
不确定您要在这里实现什么。因为你的输入日期和输出日期格式一样。
但是如果您需要其他格式的日期,该解决方案将起作用
为什么不能用??
In chrome '23-01-2019'
不是有效的日期字符串。甚至
new Date('23-01-2019')
在 chrome 中给出 Invalid Date
消息(未在其他浏览器中检查)。你可以在控制台试试。
解决方法:
因此,您也可以使用其他分隔符格式化日期,例如 /
,然后在该日期执行 DatePipe
转换。有关格式设置的更多信息 here
示例:
let myDate = "23-01-2019".replace(/(\d{2})-(\d{2})-(\d{4})/, "//")
let newDate = this.dp.transform(myDate, 'yyyy-MM-dd', 'es-ES');
- 您可以尝试此代码 datetime-local 类型
this.myDate = this.datePipe.transform(this.myDate, 'yyyy-MM-ddThh:mm:ss');
console.log(this.myDate)
this.form.patchValue({date_of_spent:this.myDate});
- 试试这个日期类型的代码
this.myDate = this.datePipe.transform(this.myDate, 'yyyy-MM-dd');
console.log(this.myDate)
this.form.patchValue({date_of_spent:this.myDate});`enter code here`