角度日期格式更改日期

Run*_*525 2 user-interface date angular

使用 Angular 4,我们尝试在 UI 中显示一个日期。当我们从端点获取日期时,它如下所示:

2018-04-03T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

现在,在 UI 中,只需执行以下操作:

activeRule.startDate
Run Code Online (Sandbox Code Playgroud)

结果显示上面的内容。

但是,当我尝试使用以下内容格式化该日期时:

{{activeRule.startDate | date : 'MMM d, y' : 'UTC' }}
Run Code Online (Sandbox Code Playgroud)

该规则提前一天显示为

Apr 2, 2018
Run Code Online (Sandbox Code Playgroud)

我尝试附加时区值,但没有任何效果。对我来说很奇怪的是日期格式改变了检索到的值。有人可以提供见解和帮助吗?谢谢。


我使用矩框架解决了这个问题。

rule.startDate = moment(rule.startDate, 'YYYYMMDD').toISOString()
Run Code Online (Sandbox Code Playgroud)

Ste*_*ers 5

默认情况下,Angular 的日期管道将显示浏览器本地时区的日期和时间。例如,如果您位于美国东部时区,2018-04-03T00:00:00.000Z则等于Mon Apr 02 2018 19:00:00 GMT-0500 (EDT)。在 Angular 5 中,您可以通过传入时区来覆盖此行为:

{{activeRule.startDate | date : 'MMM d, y' : '+0000'}}
Run Code Online (Sandbox Code Playgroud)

https://angular.io/api/common/DatePipe