JSP页面中的精确到秒的时间控件

开发 后端
ncmgt网络监控系统中显示用户的操作日志,并且根据操作时间查询用户的详细操作记录、时间精确到秒。详细请看下文

技术:Struts1+jsp+MSql

需求:ncmgt网络监控系统中显示用户的操作日志,并且根据操作时间查询用户的详细操作记录,时间精确到秒

大致效果如下,上图!

大家可以清晰的看到,红色画线部分就是根据时间查询,时间精确到秒,不应该由用户手动输入,不然会大大降低用户体验的性能,这是就用到了时间控件,就是这个小时钟一样的东西,不过他只是一张图片而已,我们要知道它后面所隐藏的东西,先给大家展示一下效果吧,当我们点击小时钟的时候,弹出:

这样的日历图片,可以看见最下面一行是加上时分秒的,默认是没有的哦。

下面说一下怎么实现这个效果。

第一步:

引入js文件

在JSP页面的头部

  1. <script language="javascript" src="http://localhost:8080/ncmgt//js/calendar.js"></script> 

第二步:

准备一张小图片。

  1. <!--文本框用来接收用户选中的时间,并且传给form里的oplog实体类的属性-->  
  2.  
  3.   <input type="text" name="oplogSearch.dateBegin" size="16" value="" readonly="readonly" class="textarea1">  
  4. <a href="javascript:buildCal(oplogListForm.elements['oplogSearch.dateBegin'],true)">  
  5. <img id="IMG1" src="http://localhost:8080/ncmgt//img/public/clock.gif" alt="请选择日期" width="20" height="20" border="0"></a> 

当用户选择了时间,下面这个function就负责把时间放进文本框并提交表单。

  1. function closewin(){  
  2. //获取登录名和时间  
  3. parent.document.forms["0"].elements["oplogSearch.opname"].value  
  4. =document.forms["0"].elements["oplogSearch.opname"].value;  
  5. parent.document.forms["0"].elements["oplogSearch.dateBegin"].value  
  6. =document.forms["0"].elements["oplogSearch.dateBegin"].value;  
  7. parent.document.forms["0"].elements["oplogSearch.dateEnd"].value  
  8. =document.forms["0"].elements["oplogSearch.dateEnd"].value;  
  9. parent.document.forms["0"].submit();  
  10. parent.document.getElementById('divWindow').style.display="none";  
  11. return false;  

并不是提交表单就大功告成了,有一个处理是很重要的,如果用户选择的时间是自5.3日 到5.1日。就是我们常说的大于大的,小于小。

这是不符合逻辑的,就像大于3又小于1的数字,哪里有这样的呢?为了避免这样的值传到后台的Action,再用户选择了时间之后我们应该做处理。

  1. function comparePair(){  
  2. var begin,end;  
  3. begin = document.forms["0"].elements["oplogSearch.dateBegin"].value;  
  4. end = document.forms["0"].elements["oplogSearch.dateEnd"].value;  
  5. if(begin > end && end != ""){  
  6. alert("您选择的时间有误!');  
  7. return false;  
  8. }  
  9. return true;  

这样到后台就好处理了,还有一点我用的MySql数据库,在mySQL中处理时间是不能用to_date()的,那是Oracle里的时间日期函数,我们可以使用Date.format();

例如:

  1. select count(*) from nc_op_log where 1=1    and date <= DATE_FORMAT('2012-05-03 17:28:39','YYYY-MM-DD HH24:MI:SS')  and date >= DATE_FORMAT('2012-05-01 17:28:43','YYYY-MM-DD HH24:MI:SS')  

但如果你字段本身的类型就是Date类型的话,什么函数都不需要,就直接按字符串处理就可以查询到结果

例如:

  1. select count(*) from nc_op_log where 1=1  and date >= '2012-05-01 17:28:43'   and date <= '2012-05-03 17:28:39'  

原文链接:http://blog.csdn.net/se_xiaofeng/article/details/7530159

【编辑推荐】

  1. 详解Java类的生命周期 
  2. Java程序设计:图形与多媒体处理 
  3. Java理论与实践: Web层的状态复制 
  4. Java Excel API及详细教程 
  5. Java集合框架和数组的排序 
责任编辑:林师授 来源: SE_XiaoFeng的博客
相关推荐

2009-02-25 10:55:29

FCKeditor控件JSP

2009-06-29 17:09:49

JavaBeanJSP

2009-07-02 13:36:24

动态页面JSP技术

2017-01-16 16:04:04

Windows 10设置系统时间

2009-07-02 09:25:41

JSP实现页面跳转

2009-07-03 17:48:34

JSP页面翻译

2009-07-03 10:52:33

MIDletJSP页面

2011-06-22 14:14:27

pageEncodincontentType

2009-07-03 17:48:24

JSP页面跳转

2018-03-19 19:00:54

2009-07-06 09:34:19

JSP页面

2009-07-01 18:50:29

Dreamweaver

2009-07-03 18:12:49

JSP页面

2009-06-25 16:36:31

JBPM流程图

2009-03-05 10:10:52

饼图数据库JSP

2013-11-11 11:17:45

AngularJS性能优化

2009-07-06 10:00:31

JSP页面传值

2009-03-16 15:07:20

JSP分页window.openJSP表单

2019-08-21 14:35:18

压缩文件优化过程Java

2011-07-08 16:54:39

JspCookies
点赞
收藏

51CTO技术栈公众号