2016-04-22 45 views
-1

我已經從一個服務器拉進下面的JSON格式的時間:moment.js在角度不格式化,因爲我所期望的

"begins_at":"2016-04-22T08:11:07.000Z" 

我使用momentjs具有角與以下過濾器:

{{event_details.begins_at | moment: "format": "HH:MM a"}} 

我期待以下輸出:08:11 am。相反,我得到:04:04 am。我懷疑它可能與時區有關,但我不確定。我該如何解決?

+1

時刻是一個js lib下,不是一個角度濾波器,如果您已經定義了一個名爲'moment'濾波器,利用了LIB然後發佈它的代碼實際上 – svarog

+0

角一刻帶有內置過濾器。我沒有定義任何東西。 – Philip7899

回答

0

變化MM毫米(數月至分鐘:))

angular.module('app', []) 
 
    .provider('moment', function() { // be nice for DI 
 
    this.$get = function() { 
 
     return moment 
 
    } 
 
    }) 
 
    .controller('ctrl', function() { 
 
    this.event_details = { 
 
     begins_at: '2016-04-22T08:11:07.000Z' 
 
    } 
 
    }) 
 
    .filter('moment', function(moment) { 
 
    return function(input, options) { 
 
     return moment(input).format(options.split('\'')[1]) // ugly formatter ; (
 
    } 
 
    })
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 

 
<div ng-app='app'> 
 
    <div ng-controller='ctrl as c'> 
 
    moment: {{ c.event_details.begins_at | moment:"format: 'HH:mm a'" }} 
 
    </div> 
 
</div>

0

一種替代。 JS日期是一個ISO日期,所以我們只需要使用時刻轉換方法來使用JS本地日期格式。這不需要您創建自定義格式器。

{{myMomentDate.toISOString() | date: <your angular filter>}}