解决用javascript获取服务器时间的过程--使用xmlhttp获取服务器时间

王朝html/css/js·作者佚名  2006-12-11
窄屏简体版  字體: |||超大  

昨天开发时候遇到一个问题:页面上使用一个checkbox,点击checkbox的时候需要获取到当前的时间,由于不能刷新页面,问题来了:

如何使用javascript获取服务器时间???google了,csdn了,甚至也摆渡了,呵呵,老是见到梅老大的那个获取时间的出现,本人愚钝,无法领悟其中的奥妙,也就是问题没有解决,好像问题也很严重!

顺便附上梅老大的代码:

<html><head>

<script language=javascript>

//特别注明:北京时间是格林尼治标准时加八小时,因此我用的起始时间也是从八点起算的

var secondServer = <%=DateDiff("s", "1970-01-01 08:00:00", Now())%>;

var secondClient = parseInt(new Date().getTime()/1000);

var secondSub = secondServer - secondClient; //两端时间秒差

function meizzTime(n)

...{

var mei = new Date();

//得到一个新的时间

var y = mei.getYear();

var m = mei.getMonth();

var d = (mei.getDay() > 9) ? mei.getDay() : "0" + mei.getDay();

mei.setTime(mei.getTime() + n*1000);

var h = (mei.getHours() > 9) ? mei.getHours() : "0" + mei.getHours();

var m = (mei.getMinutes() > 9) ? mei.getMinutes() : "0" + mei.getMinutes();

var s = (mei.getSeconds() > 9) ? mei.getSeconds() : "0" + mei.getSeconds();

document.getElementById("clock").value = y+"-"+m+"-"+d+" "+ h +":"+ m +":"+ s;

setTimeout("meizzTime(secondSub)", 1000);

}

</script>

<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>

<meta http-equiv="refresh" content="1000">

<title>取服务器端时间(秒数)</title>

</head>

<body onload="meizzTime(secondSub)">

<form name=meizz><input name=clock size=80></form>

</body></html>

一火之下在csdn上发了贴子:http://community.csdn.net/Expert/topic/5055/5055907.xml?temp=5.111331E-02 呵呵,好家伙,几分钟内n个人给了n个解决方法,看来csdn上热心的兄弟真不少!!这里再次感谢大家!!

在大家的提示下终于找到了解决的方法:

1、做一个动态显示时间的页面,2.aspx,代码很高深,但是也太。。。。。。。他nnd的简单了

<%=now()%>

2、用另外一个页面1.htm获取2.aspx页面中的内容

<html>

<script language="JavaScript">...

//获取当前时间作为一个不相同的随机数

function getNowTime()

...{

var d, s ;

d = new Date();

s = d.getFullYear();

s += "-" +d.getDate();

s += "-"+d.getHours();

s += "-"+d.getMinutes();

s += "-"+d.getSeconds();

s += "-"+d.getMilliseconds();

return s;

}

//根据2.aspx中返回的服务器时间,2.aspx中要传入一个不相同的随机数

//有兴趣的可以试下不添加随机数作为参数,估计很郁闷^.^

//原理:跟ie中保留临时文件有关系,具体就不知道如何描述了,呵呵

function getServerTime()

...{

var objXMLHTTP=new ActiveXObject("MICROSOFT.XMLHTTP");

objXMLHTTP.open("GET","2.aspx?nowTime="+getNowTime(),false);

objXMLHTTP.send("");

var strReturn=objXMLHTTP.ResponseText;

document.getElementById("Text1").value= strReturn;

}

</script>

<body>

<span id="online_num"><INPUT id="Checkbox1" type="checkbox" name="Checkbox1" onclick=getServerTime();>

<INPUT id="Text1" type="text" name="Text1"></span>

</body>

</html>

嘿嘿,废话一大堆,原来就这么简单,欢迎大家拍砖!!!!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航