我刚遇到一个有角日期管道的问题,需要格式化从API返回的日期显示。由于日期格式有效,因此99%的时间都可以正常工作。但是,我遇到了chrome不会引发错误而firefox会引发错误的情况:
在我将日期直接从API响应传递到日期管道的情况下,我得到以下信息:
InvalidPipeArgument:“无法将“ 222-02-01”转换为日期”用于管道“ DatePipe”
在我试图让浏览器将响应转换为日期然后使用new Date()
传递到管道的情况下,我得到了
无法将“无效日期”转换为管道“ DatePipe”的日期
有问题的日期是222-02-01
,我相信firefox随后会将其转换为字符串“ Invalid Date”,可以理解,Angular的日期管道无法解析该字符串。但是,使用0222-02-1
值就可以了。
我希望对javascript日期有更深入了解的人可以解释他们在不同浏览器中的工作方式。
如果有一种解决方法,也可以让角度管道错误并退回字符串表示形式,或者在将日期传递给角度日期管道之前使用其他方法解析日期
答案 0 :(得分:0)
我认为基本形式是:YYYY-MM-DD。但是它也存在其他。 https://javascript.info/date API不应以该格式发送日期。我假设它发送JSON数据。 https://www.newtonsoft.com/json/help/html/DatesInJSON.htm