2015-11-12 34 views
2

我有以下代碼:如何按照具有時間戳的日期進行分組? (AngularJS)

<div ng-repeat="(key, value) in history | groupBy:'date'"> 
    <div>{{key}}</div> 
    <div ng-repeat="item in value"> 
    {{item}} 
    </div> 
</div> 

我想表明我的這種格式的歷史:

2015-10-10 
item 1 
item 2 
item 3 

2015-10-11 
item 4 
item 5 

2015-10-12 
item 6 
item 7 

此代碼工作正常,但date屬性是一個時間戳。每個項目的時間差別是幾個小時。重要的是,這些項目按天分組,沒有時間。

+0

你有沒有找到任何解決辦法? – Beat

回答

1

根據該answer通過angular-filterauthor製成我發現使用momentjs一個很好的解決方案:

HTML

<div ng-repeat="(key, value) in history | map: toDay | groupBy:'date'"> 
    <div>{{key}}</div> 
    <div ng-repeat="item in value"> 
     {{item}} 
    </div> 
</div> 

控制器

$scope.toDay = toDay; 

function toDay(history) { 
    history.day = moment(history.date).format("L"); 
    return history; 
} 

假設你有一個有效的javascriptDate對象,而無需使用momentjs你的函數是一樣:

function toDay(history) { 
    history.date = history.date.toLocaleDateString(); 
    return history; 
}; 
+0

我會如何做到這一點在JavaScript方面? –

相關問題