2016-03-03 239 views
2

我已经返回ISO与时区8601个日期的API偏移:AngularJS显示日期

  • 2016-03-05T06:00:00.000-08:00
  • 2016- 03-05T08:00:00.000-05:00

目前日期,使用日期角过滤器时显示在浏览器的时区:

{{scheduled | date : 'medium'} 

是否可以在他们进入的时区显示它们(即PST为第一个,EST为最后一个)以及时区名称?

+0

的可能的复制(http://stackoverflow.com/questions/17751698/stop-javascript [更改时区偏移停止的javascript日期功能] -date-function-from-changing-timezone-offset) –

+0

几个时区在给定的时间可以有相同的偏移量,但仍然是不同的(不同的DST规则等)。偏移量不足以识别时区。 –

回答

1

一个选项是解析日期的偏移量(使用正则表达式),然后将其应用到日期。这可以被包裹成一个自定义的角过滤包裹该date滤波器:

angular.module('app').filter('datetz', ['$filter', '$window', 
    function ($filter) { 
    var _ = $window._; 
    return function (date, format) { 
     // Attempt to extract the +00:00 portion of the date. 
     var matches = date.match(/[+-]\d\d:\d\d/); 
     var timezone = _.last(matches); 

     return $filter('date')(date, format, timezone); 
    }; 
    } 
]); 

{{'2016-03-05T06:00:00.000-08:00' | datetz : 'medium'} 
{{'2016-03-05T06:00:00.000-05:00' | datetz : 'medium'}