2015-05-20 31 views
2

正如標題所說,我有一張表,其中一列是紀元日期。我正在嘗試使用'toISOString()`中的JavaScript來翻譯它,但無法弄清楚如何去做。有沒有辦法在填充表格的同時動態執行?在ng-repeat中使用toISOString()作爲紀元日期

這裏是爲了什麼,我一起工作的JS:

angular.module('myapp', []) 
    .controller('MainCtrl', function($scope, $http, $filter, $interval) { 

    var orderBy = $filter('orderBy'); 
    $scope.savedOrder = 'name'; 
    $scope.searchText = '' 

    //first http request----------------------------------- 
    $http.get('xxxxxxxxxxxxxx').success(function(data) { 
     $scope.recentalerts = data; 
     $scope.tempdata = data; 
     $scope.order('-epochtime'); 
    }); 

    $scope.reverse = true; 

    //beginning of interval-------------------------------- 
    $interval(function() { 
     $http.get('xxxxxxxxxxxxx').success(function(data) { 
     if (!angular.equals(data, $scope.tempdata)) { 
      console.log("here..."); 

      ... 

      $scope.tempdata = data; 

     } //end if 

     }); 
    }, 5000); 


    $scope.order = function(predicate) { 
     $scope.reverse = !$scope.reverse; 
     $scope.recentalerts = orderBy($scope.recentalerts, predicate, $scope.reverse); 
     $scope.savedOrder = predicate; 
    }; 

    }); 

這裏是表體:

<tbody> 
    <tr data-ng-repeat="alert in recentalerts | orderBy:savedOrder:reverse | filter:searchText"> 
     <td ng-click="search(alert.epochtime)">{{alert.epochtime}}</td> 
     <td ng-click="search(alert.ip)">{{alert.ip}}</td> 
     <td ng-click="search(alert.type)">{{alert.type}}</td> 
     <td ng-click="search(alert.classification)">{{alert.classification}}</td> 
    </tr> 
    </tbody> 

我想{{alert.epochtime.toISOString()}},但沒有奏效。我想在做toISOString()之前它需要是一個日期對象,但是在ng-repeat裏面有沒有辦法做到這一點?

+2

哦嗨!我明白了,取得進展。我對角度瞭解不多,但也許這個鏈接會有幫助嗎? http://stackoverflow.com/questions/17925020/angularjs-convert-tag-value-unix-time-to-human-readable-time – Paul

+1

謝謝,是啊,仍在學習:) – erp

回答

2

您可以使用date過濾

Date Filter Docs

請參見下面的代碼。

angular.module('myapp', []) 
 
    .controller('MainCtrl', function($scope) { 
 
    // this will return epoch date 
 
    $scope.epochtime = (new Date).getTime(); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myapp"> 
 
    <div ng-controller="MainCtrl"> 
 
    <div>{{epochtime}}</div> 
 
    <div>{{epochtime | date:'yyyy-MM-dd HH:mm:ss Z'}}</div> 
 
    </div> 
 
</div>

+0

好的新問題。所以如果我這樣做' {{alert.epochtime * 1000 | date:'yyyy-MM-ddTHH:mm:ss'}} Z'我得到了我想要的,但它在gmt中。我怎麼能剃掉4小時呢?所以例如,如果曆元時間是14:07:33(2:07:33),當我通過格式化程序運行它時,它會以10:07:33出現?有任何想法嗎? – erp

+0

你可以設置時區。像這個'{{date_expression |日期:格式:時區}}' –

+0

很酷。感謝您的迴應。原來我只是想到'Z'的意思。無論如何祖魯時間在gmt,所以沒有必要翻譯:) – erp