我也尝试使用时间格式化日期,但这会引发错误。 我发送请求的方式是:
created = this.datePipe.transform(dateCreated, 'yyyy-MM-ddTHH:mm');
我需要时间,因为我正在消费一项服务,该服务需要该参数和时间来精确过滤数据。
下一张图片是错误信息:
答案 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)
答案 2 :(得分:0)
只需将日期中的所有“ /”替换为“-”:
dateCreated = formatDate(`${dateCreated}`.replaceFunction('/','-'),'full','es-CO');
该错误是针对日期按角度工作的方式生成的,因为如果没有自定义解析器,它将无法解析包含斜杠的日期。
或者您也可以使用date-fns或类似的方式定义自定义解析器。
Pdta:我不打算讨论替换函数的细节,它不在这里回答,因此,如何替换日期字符串并不重要。