js 时间比较
1,需要完成的功能:如图
“活动状态”需要根据“活动开始时间”和“活动结束时间”判断它的值。有三个值分别为:未开始,在进行,已结束
2,实现代码:
//当前时间格式化 var date = new Date(); //取当前时间,格式为,yyyy-mm-dd hh:mm:ss function GetDateT() { var d,s; d = new Date(); if(d.getMonth() + 1 < 10){ s = d.getFullYear() + "-0"; //取年份 }else{ s = d.getFullYear() + "-"; //取年份 } if(d.getDate() + 1 < 10){ s = s + (d.getMonth() + 1) + "-0";//取月份 }else{ s = s + (d.getMonth() + 1) + "-"; } s += d.getDate() + " "; //取日期 if(d.getHours()<10){ s += "0"+d.getHours() + ":"; }else{ s += d.getHours() + ":"; } if(d.getMinutes()<10){ s += "0"+d.getMinutes() + ":"; }else{ s += d.getMinutes() + ":"; //取分 } if(d.getSeconds()<10){ s += "0"+d.getSeconds(); }else{ s += d.getSeconds(); //取秒 } return(s); } nowDate=GetDateT(); //活动状态 function formatActStatus(cellvalue, options, rowObject){ //开始时间 var startYear=rowObject.activityStartTime.substring(0,10).split('-'); var startDate=rowObject.activityStartTime.substring(11).split(':'); var startTime=parseInt(startYear[0]+startYear[1]+startYear[2]+startDate[0]+startDate[1]+startDate[2]); //当前时间 var nowYear=nowDate.substring(0,10).split('-'); var nowDates=nowDate.substring(11).split(':'); var nowTime=parseInt(nowYear[0]+nowYear[1]+nowYear[2]+nowDates[0]+nowDates[1]+nowDates[2]); //结束时间 var endYear=rowObject.activityEndTime.substring(0,10).split('-'); var endDate=rowObject.activityEndTime.substring(11).split(':'); var endTime=parseInt(endYear[0]+endYear[1]+endYear[2]+endDate[0]+endDate[1]+endDate[2]); if(startTime<nowTime && nowTime<endTime){ status="进行中"; //generateHandleBtn(status); return status; }else if(nowTime<startTime){ status="未进行"; //generateHandleBtn(status); return status; }else{ status="已结束"; //generateHandleBtn(status); return status; } }
3,注:由于“活动开始时间”和“活动结束时间”精确到秒,所以当时间<10时,补上0,这样把整个时间拼成最后的变量类似这种“20150311110233”,再去比较判断在不在开始时间和结束时间区间,就不会有误差了;)