JSP显示服务器时间
这个功能比较常规,在很多系统中都会用到,本以为能搜索到很多这样的代码,就不用自己写了,结果没能找到比较满意的,要不是太复杂,就是功能上存在问题,只好自己写一个了。
其实功能逻辑很清晰,通常是先获得服务器时间,然后再客户端进行计算并显示;对于读取服务器时间一般是采用AJAX的方式,不过JSP中可以像下面这样写,在JS里获得当前服务器时间,虽然有点难看,但是比较简单实用。
Js代码
var currentTime = '<% out.print(new java.util.Date());%>';
var currentTime = '<% out.print(new java.util.Date());%>';
这样获得的时间是未格式化的,如果想获得格式化的时间,还需要使用java.text.SimpleDateFormat类,这里就不多提了。对于客户端时间的更新,就需要在JS里用到setTimeout或setInterval方法,在读取页面时间上增加一秒,然后更新页面显示。这里的时间计算操作,我觉得最好是转换成毫秒来计算,而不是从yyyy-MM-dd HH:mm:ss中读取各个值,然后进行加减判断操作。用毫秒计算操作的代码片断如下:
Js代码
nextSecond = new Date();
nextSecond.setTime(parseInt(time) + 1000);
nextSecond = new Date();
nextSecond.setTime(parseInt(time) + 1000);基于jquery的完整js代码如下:
Js代码
<script type="text/javascript">
$(document).ready(function(){
setTimeout('updateCurrentDate('+'<% out.print(new java.util.Date().getTime());%>'+')', 100);
});
updateCurrentDate = function(time) {
date = new Date();
date.setTime(parseInt(time) + 1000);
$('#currentDate').html(date); //html(format(date));
setTimeout('updateCurrentDate('+date.getTime()+')', 1000);
}
</script>
<h2><b id="currentDate"></b></h2>
这个功能比较常规,在很多系统中都会用到,本以为能搜索到很多这样的代码,就不用自己写了,结果没能找到比较满意的,要不是太复杂,就是功能上存在问题,只好自己写一个了。
其实功能逻辑很清晰,通常是先获得服务器时间,然后再客户端进行计算并显示;对于读取服务器时间一般是采用AJAX的方式,不过JSP中可以像下面这样写,在JS里获得当前服务器时间,虽然有点难看,但是比较简单实用。
Js代码
var currentTime = '<% out.print(new java.util.Date());%>';
var currentTime = '<% out.print(new java.util.Date());%>';
这样获得的时间是未格式化的,如果想获得格式化的时间,还需要使用java.text.SimpleDateFormat类,这里就不多提了。对于客户端时间的更新,就需要在JS里用到setTimeout或setInterval方法,在读取页面时间上增加一秒,然后更新页面显示。这里的时间计算操作,我觉得最好是转换成毫秒来计算,而不是从yyyy-MM-dd HH:mm:ss中读取各个值,然后进行加减判断操作。用毫秒计算操作的代码片断如下:
Js代码
nextSecond = new Date();
nextSecond.setTime(parseInt(time) + 1000);
nextSecond = new Date();
nextSecond.setTime(parseInt(time) + 1000);基于jquery的完整js代码如下:
Js代码
<script type="text/javascript">
$(document).ready(function(){
setTimeout('updateCurrentDate('+'<% out.print(new java.util.Date().getTime());%>'+')', 100);
});
updateCurrentDate = function(time) {
date = new Date();
date.setTime(parseInt(time) + 1000);
$('#currentDate').html(date); //html(format(date));
setTimeout('updateCurrentDate('+date.getTime()+')', 1000);
}
</script>
<h2><b id="currentDate"></b></h2>