如何使用jqgrid从列中获取总时间?

时间:2013-12-16 11:11:10

标签: datetime jqgrid

我想在页脚中添加一个Total。我知道如何添加列的总和。但我的问题是如何在列包含分钟或小时时获得总和。这是当我有整数或浮点数时:

 var workedTotal = jQuery("#list2").jqGrid('getCol', 'worked', false, 'sum');

 $(this).jqGrid('footerData','set',
 {name:'TOTAL', worked:workedTotal});

正如我之前提到的,当我有日期时间格式时,我想知道如何获得列的总和? THX

1 个答案:

答案 0 :(得分:0)

getCol仅适用于列中的数字。要使'sum'正确使用"102:32"等数据,您应该将unformat函数(请参阅here)添加到列'worked'unformat函数可以将分钟和小时转换为分钟数并返回结果

unformat: function (cell) {
    if (typeof cell !== "string") {
        return 0;
    }
    // now we are sure that we work with strings and can use split
    var arr = cell.split();
    if (arr.length === 2) {
        // standard format of input string like "102:32"
        var h = parseInt(arr[0], 10), m = parseInt(arr[1], 10);
        if (!isNaN(h) && !isNaN(m)) {
            return h * 60 + m;
        }
    }
    return 0; // some exotic input data
}

我没有测试上面的代码,但我希望您将unformat添加到列'worked'的定义中,然后

var workedTotalMin = jQuery("#list2").jqGrid('getCol', 'worked', false, 'sum');

将获得总分钟数。您可以使用toFixed%将结果转换为使用footerData前几分钟或几小时的字符串。