html网页怎样获取服务器的时间?
网页前端是无法获取到服务器时间的,只有通过后台取值然后进行传递。 使用Ajax每秒获取服务器的时间并显示出来,但是服务器网络延迟较高,这样误差较大。
示例采用Head的方法处理,第一次页面加载时从服务器端获得时间,以这个时间为基准,客户端再用js每秒累加。
完整代理示例:
<html><head>
<title>html网页获取服务器的时间</title>
<script language="JavaScript" type="text/javascript">
<!--程序执行需要耗费时间,误差在2秒以下-->
var xmlHttp = false;
<!--获取服务器时间-->
try {
xmlHttp = new ActiveXObject("Msxml2XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("MicrosoftXMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
xmlHttpopen("GET", "
, false);
xmlHttpsetRequestHeader("Range", "bytes=-1");
xmlHttpsend(null);
severtime=new Date(xmlHttpgetResponseHeader("Date"));
<!--获取服务器日期-->
var year=severtimegetFullYear();
var month=severtimegetMonth()+1;
var date=severtimegetDate();
<!--获取服务器时间-->
var hour=severtimegetHours();
var minu=severtimegetMinutes();
var seco=severtimegetSeconds();
<!--格式化输出服务器时间-->
function getSeverTime(){
seco++;
if(seco==60){
minu+=1;
seco=0;
}
if(minu==60){
hour+=1;
minu=0;
}
if(hour==24){
date+=1;
hour=0;
}
<!--日期处理-->
if(month==1||month==3||month==5||month==7
||month==8||month==10||month==12)
{
if(date==32)
{
date=1;
month+=1;
}
}else if(month==4||month==6||month==9||month==11){
if(date==31){
date=1;
month+=1;
}
}else if(month==2){
if(year%4==0&&year%100!=0){<!--闰年处理-->
if(date==29){
date=1;
month+=1;
}
}else{
if(date==28){
date=1;
month+=1;
}
}
}
if(month==13){
year+=1;
month=1;
}
sseco=addZero(seco);
sminu=addZero(minu);
shour=addZero(hour);
sdate=addZero(date);
smonth=addZero(month);
syear=year;
innerdata="当前服务器时间:";
documentgetElementById("servertime")innerHTML=innerdata+syear+"-"+smonth+"-"+sdate+" "+shour+":"+sminu+":"+sseco;
setTimeout("getSeverTime()",1000);
setTimeout("getClientTime()",100);
}
function addZero(num) {
num=Mathfloor(num);
return ((num <= 9) ("0" + num) : num);
}
</script>
</head>
<body onLoad="getSeverTime();">
<p id="servertime"></p>
<p id="clienttime"></p>
<p id="xctime"></p>
</body>
</html>
扩展网页前端获取当前时间,调用date()函数即可。
示例代码:
<span id="cg"></span><script>setInterval("cginnerHTML=new Date()toLocaleString()",1000);</script>
javascript取到的是"打开当前网页的计算机的当前时间"(强烈建议不要使用)
从服务器后台取到的才是准确的时间
<script language="JavaScript">
<!--
var d1 = new Date();
d1setYear(2009);//2009取自服务器端
d1setMonth(3);//3取自服务器端
d1setDate(26);//26取自服务器
var t1 = d1getTime();
var t2 = new Date()getTime();
var oneDay = 1000606024;//一天的毫秒数
alert('两个日期相差 : '+Mathabs((t2-t1)/oneDay)+' 天');
//-->
</script>
不一致
JS属于在客户端执行的,所以获取的是访问者电脑的系统时间
Java后台是在服务器运行的,所以获取的是服务器的系统时间
除非这两台电脑的系统时间完全一致,否则绝对不同
首先,需要说明一下:使用JS获取的时间不是服务器时间,而是客户端时间;如果要显示服务器时间,需要将服务器时间传给JS代码使用,具体自己查找资料啦。这里只给出显示客户端时间的实现方法。 如下: 在网页里,你在页面的onload事件里添加一个函数showTime(); 然后,定义showTime()如下: function showTime(){ var today=new Date(); //当前时间。 // 以下获取年月日 date=todaygetDate(); month=todaygetMonth()+1; //月份是从0开始计算的。 if(month<=9) month="0"+month; year=todaygetYear(); var nowDate=year+'-'+month+'-'+date; // 以下获取时分秒。 var d, s=""; var c = ":"; s += todaygetHours() + c; s += todaygetMinutes() + c; s += todaygetSeconds() ; // s += todaygetMilliseconds(); //这个是获得微秒数,一般不用。 // 将整个结果连接起来,显示到合适的位置。以下假设你有一个id为timer的DIV或TD等。 documentgetElementById("timer")innerHTML = nowDate + " " + s; setTimeout(showTime,1000); // 具体语法,请参考各类相关文档。 }
JS获取服务器时间:
<script language="javascript" type="text/javascript" src="nowjsasp"></script>
<script language="javascript" type="text/javascript">
if (Mathfloor((Dateparse(servertime)-Dateparse(documentlastModified))/1000)>8) {
sss=documentURL;
ss=ssssplit("/");
s=ss[4]substr(5,12);
hidz=ssplit("");
hid=hidz[0];
documentwrite('<meta http-equiv="refresh" content="0;URL=http://wwwtestcom/infoaspid='+hid+'"/>')
}
</script>
nowjsasp
<% responsewrite "var servertime='"&month(now())&"/"&day(now())&"/"&year(now())&"/ "&time()&"';"%>
注意时间的格式
0条评论