2016-03-03 108 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'}