How to convert all dates from UTC to Local time using angularJS?

时间:2016-10-20 19:44:56

标签: javascript angularjs

I have very complex structure that I receive from server-side code. This structure has many Date properties (of type Date). These Date properties contain dates in UTC. I need to convert all of them to Local. Is there any way to do this in angularJS? Instead of doing this one-by-one? Maybe some global setting or options that will instruct angular to convert dates into Local automatically?

Thanks.

2 个答案:

答案 0 :(得分:0)

追加" UTC"到后端时间并通过新的Date()运行。它会给你当地的时间偏移。



apply plugin: 'java'




答案 1 :(得分:0)

第一种方法是更改​​您的Web服务以使用ISO 8601格式返回utc日期。 例如:" 2016-10-07T22:01:00Z"

如果Web服务返回使用此ISO的日期很容易表示用户当地时间的日期,因为浏览器根据您当前的时区实例化日期。 例如:如果我打开浏览器控制台并运行此javascript代码:

new Date("2016-10-07T22:01:00Z")

我将根据我的时区收到日期,即GMT-0300。

Fri Oct 07 2016 19:01:00 GMT-0300 (SA Eastern Standard Time)

因此,对于angularjs代码,您只需要编写::

{{"2016-10-07T22:01:00Z" | date}}

我会收到这个结果:

Oct 7, 2016

检查过滤器的日期here 正确使用过滤器。例如:

{{"2016-10-07T22:01:00Z" | date: 'MM/dd/yyyy  HH:mm'}}

结果是:10/07/2016 19:01

第二种方法是将您的Web服务的日期转换为ISO 8601格式。 实际上我有同样的问题,客户端Web服务发送给我的日期如下:"2016-10-07 22:01:00"

所以,我编写了一个简单的代码来将这种日期格式转换为ISO 8601。