如何指定时区到日期过滤器

时间:2013-12-11 22:19:17

标签: angularjs

我有这个日期:1386800070703。我们说它是UTC 如何判断角度是什么时区以及我想要显示的时区?

我目前正在使用tihs,它只转换它而没有任何时区信息:
{{1386800070703 | date:'d MMMM yyyy'}}

并希望能够在日期右侧显示时区。

3 个答案:

答案 0 :(得分:11)

在AngularJS(1.3.0)的下一个版本中,您可以通过以下方式指定时区:

{{someDate | date:'d MMMM yyyy Z' : 'UTC'}}

目前,只支持UTC,您可以在文档中看到:https://code.angularjs.org/1.3.0-rc.2/docs/api/ng/filter/date

您可以在此处播放:Plunker example

请注意,即使另有指定,时区也会显示为本地时间。

答案 1 :(得分:3)

这是我写的一个指令:

angular.module('CommonDirectives', []).directive('adjustTimezone', ['$filter', function ($filter) {
  return {
    restrict: 'A',
    scope: {
      adjustTimezone: '@'
    },
    link: function ($scope, element, attrs) {
      var date = new Date(attrs.adjustTimezone);

      date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
      element.text($filter('date')(date, attrs.filter));
    }
  }
}]);

以下是您使用它的方式:

<span data-adjust-timezone="{{date.MilitaryTime}}" data-filter="EEEE, MMMM d, y h:mm a"></span> 

答案 2 :(得分:1)

使用元素 Z

'Z': 4 digit (+sign) representation of the timezone offset (-1200-+1200)

{{1386800070703 | date:'d MMMM yyyy Z'}}