简单记录一下,前几天在JavaScript社区中发了帖子向大家询问,自己摸索之后找到了解决方法
原贴指路:
https://bbs.csdn.net/topics/605086315?spm=1001.2014.3001.6376
前四项的查询已经解决了,现在主要贴出如何对表格内时间段进行查询
基本思路,将表格内的数据依次循环取出,每次循环将两条日期分开,并分别取时间戳(在另一个帖子中有大佬告诉我可以直接进行时间段的比较,不转换时间戳也可以,我没试过,各位可以尝试一下),与日期选择器中转化好的时间戳进行比较,再给出if选择语句即可
// 获取查询开始和结束的时间戳
var starttime = getTimeStamp($('#datetime1').val());
var endtime = getTimeStamp($('#datetime2').val());
// 获取时间戳函数
function getTimeStamp(val){
val=val+' 00:00:00'
var getTimes=new Date(val),
getTimes=getTimes.getTime()/1000;
return getTimes;
}
// 下面几行是主要查询部分
var tableId = document.getElementById("form_info");
var str = "";
$('#show_tbody tr').hide()//先将所有行隐藏
for(var i=1;i<tableId.rows.length;i++) {
// alert(tableId.rows[i].cells[2].innerHTML); // 是某一列依次循环的值
var timestr = tableId.rows[i].cells[4].innerHTML;//这里依次循环获取时间段的值
var timestrs = timestr.split("--") //将时间段分开,存放在timestrs数组中
var starttime1 = getTimeStamp(timestrs[0]) //获取表格中开始时间的时间戳
var endtime1 = getTimeStamp(timestrs[1]) //获取表格中结束时间的时间戳
if( starttime1>=starttime && endtime1<=endtime ){ //if条件判定显示和隐藏
tableId.rows[i].style.display='' //行显示命令
}
else {
tableId.rows[i].style.display='none' //行隐藏命令
}
}
以上就是对时间段进行查询的方法
至于想要把查询日期与前面的直接 按照字段匹配的查询结合在一起,就要按照查询日期的方法将以上几个字段分别查询并加判定条件在if语句;同时之前对按照字段匹配的查询代码继续保留。
另外,提示,按照字段匹配的时候是有调用jQuery库即:
<script src="js/jquery-1.10.2.js"></script>