2017-02-24 132 views
0

我有一個日期格式爲/Date(1451602800000)/AngularJS中的解析日期

我想以'短'格式顯示此日期。

我試圖{{myDate | date:'short'}}但結果是/Date(1451602800000)/

+2

[角日期解析意想不到輸出]的可能的複製(http://stackoverflow.com/questions/27584890/angular-date-parsing-unexpected-output) –

回答

0

使用這樣

angular.module("app",[]) 
 
.controller("ctrl",function($scope){ 
 
\t $scope.date = "\/Date(1451602800000)\/"; 
 
}) 
 
.filter("mydate", function() { 
 
    var re = /\/Date\(([0-9]*)\)\//; 
 
    return function(x) { 
 
     var m = x.match(re); 
 
     if(m) return new Date(parseInt(m[1])); 
 
     else return null; 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    {{date |mydate }} <br> 
 
    {{date |mydate | date: 'yyyy-MM-dd HH:mm' }} 
 
</div>

1

的是定製過濾器這裏是另一種方法。
我在JS使用正則表達式從@sachila ranawaka

.filter('regexp', function(){ 
    return function(input){ 
     return input.match(/\/Date\(([0-9]*)\)\//)[1]; 
    }; 
}); 

在HTML:

{{ myDate | regexp | date:'short' }} 

這樣你可以在你的喜好使用角度日期過濾器。

REF:https://docs.angularjs.org/api/ng/filter/date