2016-05-24 9 views
0

私はこのようなINT列のフッターの合計を取得することができます。のjQueryのDataTableフッターの合計:mm:ssのデータ型の列

footerCallback: function (row, data, start, end, display) { 
     var quantita = this.api(), data; 

     // Total over all pages 
     total_quantita = quantita 
      .column(5) 
      .data() 
      .reduce(function (a, b) { 
       return intVal(a) + intVal(b); 
      }, 0); 

     // Total over this page 
     pageTotal_quantita = quantita 
      .column(5, { page: 'current'}) 
      .data() 
      .reduce(function (a, b) { 
       return intVal(a) + intVal(b); 
      }, 0); 

     // Update footer Column "quantita" 
     $(quantita.column(5).footer()).html(
     pageTotal_quantita +' ('+ total_quantita +' total)' 
     ); 

enter image description here

私の質問は:どのように私は得ることができます合計hh:mm:ssデータ型列? ありがとうございました!

+0

おそらく[MomentJS](http://momentjs.com/docs/#/durations/)の継続時間を使用して – annoyingmouse

答えて

1

、あなたはほぼありましたが、今はこれを作成するために使用されました:

var table = $('#example').DataTable({ 
    "footerCallback": function (row, data, start, end, display) { 
     var api = this.api(), data; 
     // Total over all pages 
     total_ID = api.column(0).data().reduce(function (a, b) { 
      return ~~a + ~~b; 
     }, 0); 
     total_Duration = api.column(1).data().reduce(function (a, b) { 
      return moment.duration(a).asMilliseconds() + moment.duration(b).asMilliseconds(); 
     }, 0); 
     // Total over this page 
     pageTotal_ID = api.column(0, { page: 'current'}).data().reduce(function (a, b) { 
      return ~~a + ~~b; 
     }, 0); 
     pageTotal_Duration = api.column(1, { page: 'current'}).data().reduce(function (a, b) { 
      return moment.duration(a).asMilliseconds() + moment.duration(b).asMilliseconds(); 
     }, 0); 
     // Update footer Column "quantita" 
     $(api.column(0).footer()).html(
      pageTotal_ID + ' ('+ total_ID +' total)' 
     ); 
     $(api.column(1).footer()).html(
      moment.utc(pageTotal_Duration).format("HH:mm:ss") + ' ('+ moment.utc(total_Duration).format("HH:mm:ss") + ' total)' 
     ); 
    } 
}); 

私がcreated限られた例で動作するようです。希望が役立ちます。

+0

あなたは大歓迎です、 'format'関数が私は[スプーフィング](http://stackoverflow.com/questions/13262621/how-do-i-use-format-on-a-moment-js-duration)のように大きな期間の微調整が必​​要です日付。周りを見て、私はあなたの期間を正しくフォーマットする別の方法を見つけるだろうと確信しています。 – annoyingmouse

+0

実際、時間に問題があります。時間> 24の場合は時間= 1。大きな問題:( –

0

解決策を見つけようと...私がしなければならない最初の事は和である()列データ(https://cdn.datatables.net/plug-ins/1.10.11/api/sum%28%29.js

 var time_api = this.api(); 
     //total for all pages 
     var total = time_api.column(3) 
       .data() 
       .sum();   

     //write in footer 
     $(time_api.column(3) 
      .footer()) 
      .html(total); 

これは私の和である。この出力が得られますが、それはいくつかの調整を必要とし、 午前12時03分05秒(正しい和出力):この中へ

enter image description here

:と私はこのをオンにする方法を見つけ出すことはできません。

これは新しい質問を作成する必要があります。回答が得られたら、ここで更新します。

助けてください。私はあなたのコードを更新した

関連する問題