javascript实现获取服务器时间

  作者:bea

JS是在客户端运行的脚本,而不是运行在服务器上,通常来说,通过JS获取时间的时候获取到的时间是访客本地电脑上的时间,为了让网页上的时间不因访客电脑差异而不同,我们有必要直接JS获取服务器时间。 下面是完整的js获取服务器时间代码,是使用javascript获取服务器时间的完整实例,js动态刷新服务器时间。 <!DOCTYPE html><html><head><meta http-equiv="Content-Type" cont
JS是在客户端运行的脚本,而不是运行在服务器上,通常来说,通过JS获取时间的时候获取到的时间是访客本地电脑上的时间,为了让网页上的时间不因访客电脑差异而不同,我们有必要直接JS获取服务器时间。
下面是完整的js获取服务器时间代码,是使用javascript获取服务器时间的完整实例,js动态刷新服务器时间。


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AJAX获取服务器时间</title>
<script type="text/javascript">
/*
* ajax 函数,处理 ajax 请求
* @param function callback 回调函数
* @因为要和服务器交互,所以必须在服务器环境运行,不能在硬盘上直接打开
*/
function ajax(callback){
if(typeof callback!='function') return;
var ajaxObject;
try{
ajaxObject=new XMLHttpRequest();
}catch(e){
try{
ajaxObject=new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
}
}
if(!ajaxObject) return;
if(ajaxObject.overrideMimeType){
ajaxObject.overrideMimeType('text/html');
}
//location.href可以换成其他url,但必须是同一个站点的链接,并且文件存在
ajaxObject.open('get',location.href);
ajaxObject.send(null);
ajaxObject.onreadystatechange=function(){
if(ajaxObject.readyState==4){
if(ajaxObject.status==200){
callback(ajaxObject);
}
}
};
}
/*
* 获取时间并动态刷新
*/
function getTime(){
ajax(
function(ao){
//只需要AJAX一次,将服务器时间获取后以毫米为单位保存到一个变量中
_timestamp=Date.parse(ao.getResponseHeader('Date'));
_timestamp=_timestamp.toString().match(/^d$/)?_timestamp:new Date().getTime();
//设置定时器每过一秒动态刷新一次时间
setInterval(
function(){
//这里可以自定义时间显示格式
document.getElementById('_timer').innerHTML=new Date(_timestamp).toLocaleString();
_timestamp+=1000;
},
1000
);
}
);
}
window.onload=getTime;
</script>
</head>
<body>
<div id="_timer">正在获取服务器时间……</div>
</body>
</html>


思路分析:
服务器端时间这个概念很模糊。因为服务器端毕竟可能不是由一台机器组成的。最简单的情况,也分web服务器和db服务器。你说的究竟是哪一种
如果是web服务器。 那么直接在java或者.net那头new Date()就ok了 不要在网页中的<script>里面new Date,那个只是客户端时间
如果是db服务器。 需要连接到数据库,通过sql来取得。比如oracle的就是select sysdate from dual。
示例:
如果js要取得这样的服务器端时间,方法有很多。思路大体差不多。 1. <script type="text/javascript">     var date = <%=date(刚才在服务器端取得的时间,内容取得方法上面分析过了)%> </script>
2.<script type="text/javascript" src=".../ScriptServlet"></script> 将Servlet的返回流中写入一个js文件,使其当中的var nowDate = 服务器端时间
3.ajax,这个就不说了,网上一大堆
以上所述就是本文的全部内容了,希望大家能够喜欢。


有用  |  无用

猜你喜欢