2016-09-12 46 views
0

我使用DataTables jQuery插件來顯示數據庫中的數據。 目前我使用Row Grouping的示例來顯示每週的天數。Datatable count

我現在在這工作了一個星期,並在本週的最後幾行顯示一行來計算那一週的小時數,但這個插件似乎幾乎不可能達到這個目標。有沒有人可以告訴我,如果這可以完成和如何。

這裏是我的代碼:

var api = this.api(),data; 
var rows = api.rows({ page:'current' }).nodes(); 
var last = null; 

total = new Array(); 

api.column(weekColumn, { page:'current' }).data().each(function(group, i) { 
    group_assoc = group.replace(' ',"_"); 
    if (typeof total[group_assoc] != 'undefined') { 
     total[group_assoc]=total[group_assoc]+api.column(5).data()[i]; 
    } else { 
     total[group_assoc]=api.column(5).data()[i]; 
    } 

    if (last !== group) { 
     $(rows).eq(i).before('<tr class="group" style="background-color:#3ea5ce;color:#ffffff;"><td colspan="5">{{ trans('admin.worktime.field.week') }} '+group+'</td><td colspan="3" class="'+group_assoc+'"></td></tr>'); 

     last = group; 
    } 
}); 

for (var key in total) { 
    $("." + key).html(total[key]); 
} 

目前,它被輸出爲09:3907:0008:0107:5207:28,而不是被算作總。我該如何解決這個問題?

回答

1

我想你正在試圖總結時間值,但他們被視爲字符串和連接。 This post描述瞭如何首先製作這些時間字符串的整數值。計算整數的總和並將其轉換回一次。

+0

感謝您的評論。爲什麼我需要首先將它們轉換爲秒,以及我需要將該功能放在哪裏?首先將它們轉換爲秒並將它們轉換回HH:mm似乎沒有意義。您的.each循環中的 –

+0

: 'a = api.column(5).data()[i] .split(':');' 'minutes =(+ a [0])* 60 +(+ a [1]);' 'total [group_assoc] = total [group_assoc] +分鐘;' – verhie