diff --git a/src/main/java/com/nis/util/DateUtils.java b/src/main/java/com/nis/util/DateUtils.java index 011f1dd0a..2869881e6 100644 --- a/src/main/java/com/nis/util/DateUtils.java +++ b/src/main/java/com/nis/util/DateUtils.java @@ -53,6 +53,18 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { } return formatDate; } + /** + * 把指定时间转为指定格式 + * @param date 需格式化时间 + * @param parm 格式 + * @return + */ + public static String formatDateTimeByParm(Date date,String parm) { + if(StringUtil.isBlank(parm)){ + parm="yyyy-MM-dd"; + } + return formatDate(date, parm); + } /** * 得到日期时间字符串,转换格式(yyyy-MM-dd HH:mm:ss) diff --git a/src/main/java/com/nis/web/controller/report/ReportController.java b/src/main/java/com/nis/web/controller/report/ReportController.java index 6b2921094..b761321fa 100644 --- a/src/main/java/com/nis/web/controller/report/ReportController.java +++ b/src/main/java/com/nis/web/controller/report/ReportController.java @@ -68,9 +68,9 @@ public class ReportController extends BaseController { params.put("searchFoundEndTime", log.getSearchFoundEndTime()); } else { Calendar time = Calendar.getInstance(); - String searchEndTime = DateUtils.formatDateTime(time.getTime()); + String searchEndTime = DateUtils.formatDateTimeByParm(time.getTime(),"yyyy-MM-dd HH")+":00:00"; time.add(Calendar.HOUR_OF_DAY, -1); - String searchStartTime = DateUtils.formatDateTime(time.getTime()); + String searchStartTime = DateUtils.formatDateTimeByParm(time.getTime(),"yyyy-MM-dd HH")+":00:00";; params.put("searchFoundStartTime", searchStartTime); params.put("searchFoundEndTime", searchEndTime); diff --git a/src/main/webapp/WEB-INF/views/report/asnRecordList.jsp b/src/main/webapp/WEB-INF/views/report/asnRecordList.jsp index dcf7d214f..2c15227d7 100644 --- a/src/main/webapp/WEB-INF/views/report/asnRecordList.jsp +++ b/src/main/webapp/WEB-INF/views/report/asnRecordList.jsp @@ -146,7 +146,7 @@ <%-- value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> --%> + value="${log.searchFoundStartTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTimeByFormat('#searchFoundStartTime','#searchFoundEndTime',1,'w','yyyy-MM-dd hh:mm:ss',false,'yyyy-MM-dd hh')"/>
@@ -157,7 +157,7 @@ <%-- value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> --%> + value="${log.searchFoundEndTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTimeByFormat('#searchFoundStartTime','#searchFoundEndTime',1,'w','yyyy-MM-dd hh:mm:ss',false,'yyyy-MM-dd hh')"/>
diff --git a/src/main/webapp/static/global/scripts/pzLog.js b/src/main/webapp/static/global/scripts/pzLog.js index 498280561..3ae0d1a73 100644 --- a/src/main/webapp/static/global/scripts/pzLog.js +++ b/src/main/webapp/static/global/scripts/pzLog.js @@ -361,12 +361,12 @@ function setEndTime(startTimeSelector,endTimeSelector,granule,unit,formate,futur function setStartTime(startTimeSelector,endTimeSelector,granule,unit,formate,future){ if(strIsBlank(granule)||strIsBlank(unit)){ - console.log("时间粒度或时间单位为空"); + //console.log("时间粒度或时间单位为空"); return; } if(strIsBlank(startTimeSelector)||strIsBlank(endTimeSelector)){ - console.log("时间输入框选择器为空"); + //console.log("时间输入框选择器为空"); return; } @@ -471,4 +471,179 @@ if(new RegExp("("+ k +")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); return fmt; } -/*======================时间验证方法end===========================*/ \ No newline at end of file +/*======================时间验证方法end===========================*/ + + + + +/*======================新增按照需求指定时间范围,如取到天、小时等start=====================================*/ +//startTimeSelector:输入框开始时间选择器; +//endTimeSelector:输入框结束时间选择器; +//granule:时间粒度(数字); +//unit:时间粒度单位(h-小时,d-天,w-周,m-月); +//formate:时间格式;默认格式:yyyy-MM-dd hh:mm:ss +//future:选择的时间是否可以为未来时间 true or false 默认false(不能为未来时间) +//formatParm有效时间范围参数:yyyy-MM-dd HH例如时间范围限制到小时:yyyy-MM-dd HH:00:00;yyyy-MM-dd例如时间范围限制到天:yyyy-MM-dd 00:00:00 +function setEndTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,formate,future,formatParm){ + + if(strIsBlank(granule)||strIsBlank(unit)){ + console.log("时间粒度或时间单位为空"); + return; + } + + if(strIsBlank(startTimeSelector)||strIsBlank(endTimeSelector)){ + console.log("时间输入框选择器为空"); + return; + } + + if(strIsBlank(formate)){ + formate="yyyy-MM-dd hh:mm:ss" + } + var endStr=""; + if(strIsBlank(formatParm)){ + formatParm = formate; + }else{ + if((formate.length-formatParm.length) == 3){ + endStr="00"; + }else if((formate.length-formatParm.length) == 6){ + endStr=":00:00"; + }else if((formate.length-formatParm.length) == 9){ + endStr=" 00:00:00"; + }else{ + endStr=""; + } + } + + if(future==null || future==undefined){ + future=false; + } + var startTimeVal=$(startTimeSelector).val(); + var endTimeVal=$(endTimeSelector).val(); + alert(startTimeVal); + alert(endTimeVal); + //alert(startTimeVal.substr(0,formatParm.length-1); + var startTime; + var endTime; + + var diff=getTimeDiff(granule,unit);//得到时间粒度差值 + + if(!strIsBlank(endTimeVal)){ + endTime=new Date(endTimeVal); + var currentTime=new Date().getTime(); + if(!future&&endTime.getTime()>currentTime){ //endTime不能是未来时间 + endTime=new Date(); + } + if(strIsBlank(startTimeVal)){ + startTime=new Date(endTime.getTime()-diff); + }else{//startTime和endTime都不为空 + startTime=new Date(startTimeVal); + if(endTime.getTime()-startTime.getTime()>diff||endTime.getTime()-startTime.getTime()<=0){//startTime不在时间粒度之内 + startTime=new Date(endTime.getTime()-diff); + } + } + + }else{ + if(strIsBlank(startTimeVal)){//startTime and endTime 都为空 + endTime=new Date(); + startTime=new Date(endTime.getTime()-diff); + }else{//startTime 不为空,endTime为空 + setStartTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,formate,future); + return; + } + } + + //$(startTimeSelector).val(dateFtt(formate,startTime)); + //$(endTimeSelector).val(dateFtt(formate,endTime)); + $(startTimeSelector).val(dateFtt(formatParm,startTime)+endStr); + $(endTimeSelector).val(dateFtt(formatParm,endTime)+endStr); + +} + +//startTimeSelector:输入框开始时间选择器; +//endTimeSelector:输入框结束时间选择器; +//granule:时间粒度(数字); +//unit:时间粒度单位(h-小时,d-天,w-周,m-月); +//formate:时间格式;默认格式:yyyy-MM-dd hh:mm:ss +//future:选择的时间是否可以为未来时间 true or false 默认false(不能为未来时间) +function setStartTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,formate,future,formatParm){ + + if(strIsBlank(granule)||strIsBlank(unit)){ + //console.log("时间粒度或时间单位为空"); + return; + } + + if(strIsBlank(startTimeSelector)||strIsBlank(endTimeSelector)){ + //console.log("时间输入框选择器为空"); + return; + } + + if(strIsBlank(formate)){ + formate="yyyy-MM-dd hh:mm:ss" + } + + var endStr=""; + if(strIsBlank(formatParm)){ + formatParm = formate; + }else{ + if((formate.length-formatParm.length) == 3){ + endStr="00"; + }else if((formate.length-formatParm.length) == 6){ + endStr=":00:00"; + }else if((formate.length-formatParm.length) == 9){ + endStr=" 00:00:00"; + }else{ + endStr=""; + } + } + if(future==null || future==undefined){ + future=false; + } + var startTimeVal=$(startTimeSelector).val(); + var endTimeVal=$(endTimeSelector).val(); + + var startTime; + var endTime; + + var diff=getTimeDiff(granule,unit);//得到时间粒度差值 + + if(!strIsBlank(startTimeVal)){ + startTime=new Date(startTimeVal); + var currentTime=new Date().getTime(); + if(!future&&startTime.getTime()>currentTime){//startTime是一个超过当前时间值 + startTime=new Date(currentTime-diff); + } + if(strIsBlank(endTimeVal)){ + if(startTime.getTime()+diff>currentTime){ + endTime=new Date(); + }else{ + endTime=new Date(startTime.getTime()+diff); + } + }else{//startTime和endTime都不为空 + endTime=new Date(endTimeVal); + if(endTime.getTime()-startTime.getTime()>diff||endTime.getTime()-startTime.getTime()<=0){//endTime不在时间粒度之内 + + if(startTime.getTime()+diff>currentTime){ + endTime=new Date(); + startTime=new Date(endTime.getTime()-5*60*1000); + }else{ + endTime=new Date(startTime.getTime()+diff); + } + } + } + }else{ + if(strIsBlank(endTimeVal)){//startTime和endTime 都为空 + endTime=new Date(); + startTime=new Date(endTime.getTime()-diff); + + }else{ + setEndTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,formate,future); + return; + } + } + + //$(startTimeSelector).val(dateFtt(formate,startTime)); + //$(endTimeSelector).val(dateFtt(formate,endTime)); + $(startTimeSelector).val(dateFtt(formatParm,startTime)+endStr); + $(endTimeSelector).val(dateFtt(formatParm,endTime)+endStr); +} +/*======================新增按照需求指定时间范围,如取到天、小时等end=====================================*/