Angular 8 中的日期管道

Date Pipe in Angular 8

我在处理 angular 8.

中的日期时遇到问题

我有一个 api rest with symfony4 (apiPlatform) 并且它 returns 这种格式的日期

"balanceDate": "2010-10-04T00:00:00+00:00"

如果我在没有应用日期管道的情况下将它传递到我的模板,它会放置完全相同的文本

2010-10-04T00:00:00+00:00

当我在angular

中使用如下管道时
{‌{ balanceDate | date:'dd-MM-yyyy' }}

日期少一天表示

我一直在做测试,我手动将日期添加到管道中,我正在删除部分日期

{‌{ '2010-10-04T00:00:00+00:00' | date:'dd-MM-yyyy' }} - Fail
{‌{ '2010-10-04' | date:'dd-MM-yyyy' }} - Correct
{‌{ '2010-10-04T00:00:00' | date:'dd-MM-yyyy' }} - Correct

所以我推导出这部分日期

+00:00

这是问题的原因

老实说,我不知道我应该在哪一侧处理日期输出,无论是在 Angular 还是在 symfony api rest 中。

希望你能指导我解决这个问题

谢谢

解决方案是将字符串日期传递给 javascript 的对象日期,以便在组件中获取有效的对象日期 Javascript,然后再将其用于模板:

newdate = new Date('2010-10-04T00:00:00+00:00');

演示:Demo Angular

如果您知道日期设置为 UTC 值(时区为“+00:00”或 "Z"),则可以将时区说明符添加到日期管道:

date:'dd-MM-yyyy':'UTC'