在网页上显示时间,如果取的是用户本机的时间,由于用户的时间往往不准确,所以显示的有问题。而服务器时间一般不会误差太大,所以最好显示服务器时间
下面以asp+js为例说明。具体代码可以到本站的网页时间代码下载。 下面分析代码结构,先是获取服务器时间: 复制代码 代码如下: <% d=Date() t=Time() %> var t0=new Date().getTime(); var nyear=<%=Year(d)%>; var nmonth=<%=Month(d)%>; var nday=<%=Day(d)%>; var nwday=<%=WeekDay(d)%>-1; var nhrs=<%=Hour(t)%>; var nmin=<%=Minute(t)%>; var nsec=<%=Second(t)%>; //获得本机时间和服务器时间之差 var dectime=new Date(nyear,nmonth-1,nday,nhrs,nmin,nsec).getTime()-t0; nday=-1; //用于显示时间的span document.write("<span id=\"clock\" style=\"word-break:keep-all\"></span>"); //时间计算函数: function NewTick(){ var noww=new Date(); var t1=noww.getTime(); noww.setTime(t1+dectime); if(noww.getDate()!=nday){ nyear=noww.getFullYear();nmonth=noww.getMonth()+1;nwday=noww.getDay();nday=noww.getDate(); } nhrs=noww.getHours();nmin=noww.getMinutes();nsec=noww.getSeconds(); } //时间显示函数: function Draw(){ NewTick(); //先计算 var s=nyear+'年'+nmonth+'月'+nday+'日 '+'星期'+cweekday(nwday)+' '+shapetime(nhrs,nmin,nsec); s+=" 农历"+lmonth+"月"+lday;//显示农历 document.getElementById("clock").innerHTML=s; //每隔500毫秒重新获取一下本机时间: setTimeout("Draw()",500); }
//开始显示: Draw();
其他问题:
服务器获取的时间不能在本地缓存,所以要在代码中加入缓存控制函数; 还要防止其他网站盗链你的服务器时间代码,所以要加入防盗链函数。 如果需要显示农历,还需要加入农历运算函数。 具体请下载代码自己看。 |