2016-11-28 68 views
2

當我想格式化日期時,使用角度數據表插件排序日期時遇到問題。 讓我解釋一下: 當我使用當格式化日期時,無法排序的角度數據表

<td>{{date}}</td> 

結果是:

enter image description here

當我使用:

{{date | date}} 

結果是:

enter image description here

但是,當我使用:

{{date | date : 'dd/MM/yyyy'}} 

結果是:

enter image description here

即使如此,我宣佈它作爲一個日期格式:

_this.dtColumnDefs = [ 
    DTColumnDefBuilder.newColumnDef(0). 
    .withOption('type', 'date') 
]; 

任何想法我做錯了什麼?謝謝

回答

2

我們是一種稀有物種,我們這些人使用dd/MM/YYYY格式:)默認date類型僅適用於「有效」日期格式,即可以用Date.parse()評估的字符串。歐洲dd/MM/YYYY不是其中之一。之前momentjs和交融這樣我想你可以通過自定義解決這個非常簡單排序插件:

jQuery.extend(jQuery.fn.dataTableExt.oSort, { 
"Antt-date-pre": function (a) { 
    if (a == null || a == '') { 
     return 0; 
    } 
    var date = a.split('/'); 
    return Date.parse(date[1] + '/' + date[0] + '/' + date[2]) 
    } 
}); 

使用

DTColumnDefBuilder.newColumnDef(0). 
    .withOption('type', 'Antt-date') 

小的演示 - >http://plnkr.co/edit/00vQcoeitZlrQkprN58t?p=preview

+0

我試圖複製你的代碼,但使用它與: 'this.dtColumnDefs = [ DTColumnDefBuilder.newColumnDef(0) .withOption( '類型',「日期 - 歐元) ]' 但我沒有打電話給jQuery代碼...(請注意,當我用noSortable()替換options時,排序不按預期工作) – Antt

+0

@Antt您正在使用''date-euro''?如果您已將「Antt-date」重新命名爲「date-euro」,那麼它確實應該起作用(如示例中所示)。我自己在幾個應用程序中完成這個工作,當然還有另一個命名。 Sry,不太明白'notSortable()'的註釋,如果你想要列不可排序,但仍然想對該列進行排序,可以使用'.withOption('order',[[' asc']])''或'dt-options'中的類似內容http://plnkr.co/edit/Wo2gtv9OAPWEZ2Fkem6u?p=preview – davidkonrad

+0

對不起,我使用'date-euro'我仔細檢查:/'notSortable'thingy是爲了讓我的dtColumnDefs被稱爲這似乎是這種情況... – Antt