Angular-DatePipe无法识别日期格式



在我的Angular应用程序中,我必须以'MM/dd/yyyy'格式显示日期。Web API正在返回一个日期;CCD_ 3";总体安排

当我使用下面的代码行时,DatePipe不识别日期,但如果我手动将日期修改为"0";CCD_ 5";则CCD_ 6转换为期望的"CCD_ 7"格式。

let res = this.datePipe.transform(new Date('2020-12-01T00:00:00'),'MM/dd/yyyy');
let res = this.datePipe.transform(new Date('2020-12-01T00:00:00.000Z'),'MM/dd/yyyy');

第一个不起作用,第二个起作用。但是我的API以第一种格式返回数据。

有人能帮我用打字机把日期从第一种格式改成第二种格式吗?

Z表示ISO 8601

尝试:

let res = this.datePipe.Transform(new Date('2020-12-01T00:00:00').toISOString(),'MM/dd/yyyy');

  1. 我不知道您的代码示例是否只是演示问题的简化版本,但如果您在应用程序中使用DatePipe,则可以使用formatDate函数。所有DatePipe所做的基本上都是在try/catch块中对函数进行null检查和包装
  2. 如果将Date对象传递给管道或函数,则应使用对象实例。因此,如果您遇到问题,则是浏览器在调用new Date('...')时试图解析日期时失败。尝试console.log(isNaN(new Date('2020-12-01T00:00:00')))。如果reuslt是true,那么您就知道浏览器是罪魁祸首
  3. 管道或函数可以处理字符串,并使用正则表达式解析它们。不将值包装在Date对象中,只需传递字符串,然后看看会发生什么
let res = this.datePipe.transform('2020-12-01T00:00:00','MM/dd/yyyy');
let res2 = this.datePipe.transform('2020-12-01T00:00:00.000Z','MM/dd/yyyy');
  1. 我无法在Windows上使用Angular 10和Chrome重新创建您的问题

相关内容

  • 没有找到相关文章

最新更新