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