从数据表选定行中获取最低和最高日期值
Get lowest & highest date values from datatables selected rows
我遇到一种情况,我需要在单击按钮时从数据表中的选定行中找到日期的最低和最高值(格式:"YYYY-MM-DD")。
我设法从另一列名为"总计"的列中获取值的总和,但正在努力计算最小和最大的日期值。
我的代码是:
// Show data in alert:
// for example: From 2016-06-02 to 2016-06-05: Total = xxxxx.xx
$('#showData').click(function() {
var totalSUM = 0;
$("table tbody tr.selected").each(function() {
var getTotal = $(this).find("td:eq(1)").html();
totalSUM += Number(getTotal);
});
alert('From "fromDate" to "toDate": Total = ' + totalSUM);
});
这是工作演示
您还可以跟踪minDate和maxDate,并在每次迭代时更新它们,就像您已经使用totalSUM一样。
$('#showData').click(function() {
var totalSUM = 0, minDate, maxDate;
$("table tbody tr.selected").each(function() {
var getTotal = $(this).find("td:eq(1)").text(),
date = $(this).find("td:eq(0)").text();
totalSUM += Number(getTotal);
minDate = !minDate || date < minDate ? date : minDate;
maxDate = !maxDate || date > maxDate ? date : maxDate;
});
alert('From "fromDate" to "toDate": Total = ' + totalSUM + ' from ' + minDate + ' to ' + maxDate);
});
分叉小提琴
在
循环访问所选行时选取最小值和最大值。演示。
var totalSUM = 0, minDate, maxDate;
$("table tbody tr.selected").each(function() {
var getTotal = $(this).find("td:eq(1)").html(),
date = new Date($(this).find('td:eq(0)').text());
if(!minDate || minDate > date) minDate = date;
if(!maxDate || maxDate < date) maxDate = date;
totalSUM += Number(getTotal);
});
为此,您可以创建一个包含所有日期的新数组,sort()
它,然后使用 pop()
和 shift()
获取最新和最早的日期。试试这个:
$('#showData').click(function() {
var totalSUM = 0;
var dates = $("table tbody tr.selected").map(function() {
totalSUM += parseFloat($(this).find("td:eq(1)").text());
return new Date($(this).find('td:eq(0)').text());
}).get().sort(function(a, b) { return b - a; });
var oldestDate = dates.pop();
var newestDate = dates.shift();
console.log(oldestDate);
console.log(newestDate);
console.log('From "fromDate" to "toDate": Total = ' + totalSUM);
});
更新的小提琴
如注释中所述 - 制作数组,对其进行排序,获取第一个和最后一个元素:
// Show data in alert:
// for example: From 2016-06-02 to 2016-06-05: Total = xxxxx.xx
$('#showData').click(function() {
var totalSUM = 0,
dateArray = new Array();
$("table tbody tr.selected").each(function() {
var getTotal = $(this).find("td:eq(1)").html(),
currDate = new Date($(this).find("td:eq(0)").html());
totalSUM += Number(getTotal);
dateArray.push(currDate.getTime());
});
dateArray.sort();
var fromDate = new Date(dateArray[0]);
var toDate = new Date(dateArray[dateArray.length-1]);
alert('From '+fromDate.toLocaleDateString()+' to '+toDate.toLocaleDateString()+': Total = ' + totalSUM);
});
相关文章:
- 如何根据创建日期对对象进行排序,以插入Meteor的高图表
- JavaScript日期接收为像这次旅行一样的对象.日期:“/日期(1426530600000)/”;
- 高图表日期时间从错误的日期开始
- 日期不能显示在高图表上
- 带有高图表的 xaxis 上的日期
- 将日期转换为毫秒以获得高图表日期
- 列的高图表日期时间标签
- 将变量日期与 if/else 语句中的日期(日期字符串)进行比较
- 日期日期对象与输入不同
- 呈现高库存日期时出错
- 显示错误值的高图表日期时间转换
- 高图表日期格式没有微秒 (%f)
- 高图表 - 日期时间轴标签重叠
- 高图表日期时间标签格式不起作用
- JavaScript 新日期(日期)返回错误的日期
- 日期(日期字符串)构造函数不一致
- 如何写日期|日期:"MM”;在ng类中
- javascript数组查找具有当前日期+日期的最近日期
- 高库存日期输入 jquery UI 日期选择器位置更改
- 轴上的高图日期季度视图