错误错误:InvalidPipeArgument:'无法将“无效日期”转换为日期”管道“ DatePipe”

时间:2018-07-31 17:18:17

标签: angular date pipe transform

我也尝试使用时间格式化日期,但这会引发错误。 我发送请求的方式是:

created = this.datePipe.transform(dateCreated, 'yyyy-MM-ddTHH:mm');

我需要时间,因为我正在消费一项服务,该服务需要该参数和时间来精确过滤数据。

下一张图片是错误信息:

enter image description here

3 个答案:

答案 0 :(得分:1)

我在尝试将 MySQL 日期时间格式的字符串传递给转换函数时遇到了同样的问题。

借用 Jai Kumaresh 的 answer,我能够通过首先通过执行以下操作将 MySQL 日期时间字符串转换为 ISO 识别格式来解决此问题:

dateCreated = dateCreated.replace(' ', 'T');
created = this.datePipe.transform(dateCreated, 'yyyy-MM-ddTHH:mm');

在我这样做之前,Safari 给了我这个错误,尽管 Chrome 和 Firefox 可以工作。通过此修复程序,每个浏览器中的问题都得到了解决。

答案 1 :(得分:0)

仅接受日期格式

Year:
      YYYY (eg 1997)
   Year and month:
      YYYY-MM (eg 1997-07)
   Complete date:
      YYYY-MM-DD (eg 1997-07-16)
   Complete date plus hours and minutes:
      YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
   Complete date plus hours, minutes and seconds:
      YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
   Complete date plus hours, minutes, seconds and a decimal fraction of a
second
      YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)

Ref by

答案 2 :(得分:0)

只需将日期中的所有“ /”替换为“-”:

dateCreated = formatDate(`${dateCreated}`.replaceFunction('/','-'),'full','es-CO');

该错误是针对日期按角度工作的方式生成的,因为如果没有自定义解析器,它将无法解析包含斜杠的日期。

或者您也可以使用date-fns或类似的方式定义自定义解析器。

Pdta:我不打算讨论替换函数的细节,它不在这里回答,因此,如何替换日期字符串并不重要。