如何修复err InvalidPipeArgument的日期?

时间:2019-04-12 07:18:49

标签: angular typescript angular6

我尝试按管道日期以特定格式显示日期,然后出现此错误:

Uncaught Error: InvalidPipeArgument: 'Unable to convert "25/01/2019" into a date' for pipe 'e'
    at Xe (main.fc4242d58c261cf678ad.js:1)
    at e.transform (main.fc4242d58c261cf678ad.js:1)
    at main.fc4242d58c261cf678ad.js:1
    at main.fc4242d58c261cf678ad.js:1
    at es (main.fc4242d58c261cf678ad.js:1)
    at Cs (main.fc4242d58c261cf678ad.js:1)
    at Object.updateRenderer (2.afd83a5d88a3f927f011.js:1)
    at Object.updateRenderer (main.fc4242d58c261cf678ad.js:1)
    at $a (main.fc4242d58c261cf678ad.js:1)
    at us (main.fc4242d58c261cf678ad.js:1)

我从string“ 25/01/2019”收到了来自API的日期信息,然后像这样显示在html上:

{{ item.date | date: 'dd MMM yyyy' }}

我不知道我是否犯了一些错误。但是,我想做的是用另一种格式显示日期,而日期输入是字符串类型。

我可以这样做吗?如果是,在这种情况下怎么办?非常感谢。

注意:本地主机上不会发生此错误。在我的本地主机上,它仍然运行良好。在将Web应用程序部署到实际环境中时遇到了这个问题。

2 个答案:

答案 0 :(得分:2)

doc

  

日期表达式:Date对象,数字(自UTC时代以来的毫秒数)或ISO字符串

25/01/2019不是ISO字符串,2019-01-25是。注意:在角度通用包装盒之外还有其他日期记录管,或者您可以继续使用。

答案 1 :(得分:0)

@David Palita回答的补充,

首先,您应该将String转换为Date,然后可以使用您提到的DatePipe

item.date = parseDate(item.date, 'dd/mm/YYYY');

如果您通过stackblitz重现问题,我们可以为您的案例提供更好的指导。

我还建议您检查this这样的问题。