【发布时间】:2017-12-20 15:46:27
【问题描述】:
我的每个对象都有一个日期值,我可以像这样打印:
<td> {{competition.compStart }}</td>
这是它的外观:
1931-05-31T00:00:00.000+0000
为了更改格式以使其更具可读性,我正在使用 Angular 日期管道:
<td> {{competition.compStart | date : "dd/MM/yyyy"}}</td>
有了这个结果:
30/05/1931
如您所见,它显示的是前一天(5 月 30 日而不是 5 月 31 日)。
据我了解,问题与时区有关,因为我在阿根廷,我们有 GMT-3,那么第 31 次负 3 小时的 00:00 将是 5 月 30 日晚上 9 点。
那么我怎样才能让它从字面上花时间而不是根据时区处理它,但仍然在管道中应用格式?
【问题讨论】:
-
您期望的显示格式是什么?
-
我在管道中使用的同一个:“dd/MM/yyyy”
-
如何编写自定义管道并将日期转换为 '1931-05-31T03:00:00.000+0000' ,即增加 3 小时。
-
date管道目前似乎无法实现您要查找的内容(但在路上),您可以查看github.com/angular/angular/issues/9324。您自己的自定义管道(例如,基于 moment.js)可能是一种可行的方法。