因为全部是静态HTML.但是想动态显示服务器上的时间.
下面是根据服务器与客户端得出时间差.然后计算显示服务器时间.
可是放在欧美的空间上在IE里面.要3-5分钟才能显示时间.
放在国内的空间上没有出现过这种问题的.
麻烦各位帮忙看一下.困扰了几天.
或者有什么更好的方法在静态HTML中显示服务器的时间.
要减少请求服务器的次数.谢谢了.
var XmlHttp;//创建XMLHTTP对象
if(window.XMLHttpRequest) {//表示当前浏览器不是ie,如chrome,firefox
XmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {//表示当前浏览器是IE
XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}XmlHttp.open("HEAD","http://localhost",false);//从哪个服务器上获取时间
XmlHttp.send(); //连接服务器
var offset = Date.parse(XmlHttp.getResponseHeader("Date"));//获取标头中的时间
offset -= (new Date).getTime(); //获取本地时间与服务器时间的间隔
function ShowTime() //显示时间的方法
{
var d = new Date; //获取当前时间
d.setTime(d.getTime()+offset); //通过服务器和本地的时间间隔获取当前服务器时间
var ddd = new Date();
document.getElementById("webtime").innerHTML=d.format('hh:mm dd/MM/yyyy'); //显示服务器时间
}
setInterval("ShowTime()", "1000");Date.prototype.format = function(format)
{
var o =
{
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format))
format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
下面是根据服务器与客户端得出时间差.然后计算显示服务器时间.
可是放在欧美的空间上在IE里面.要3-5分钟才能显示时间.
放在国内的空间上没有出现过这种问题的.
麻烦各位帮忙看一下.困扰了几天.
或者有什么更好的方法在静态HTML中显示服务器的时间.
要减少请求服务器的次数.谢谢了.
var XmlHttp;//创建XMLHTTP对象
if(window.XMLHttpRequest) {//表示当前浏览器不是ie,如chrome,firefox
XmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {//表示当前浏览器是IE
XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}XmlHttp.open("HEAD","http://localhost",false);//从哪个服务器上获取时间
XmlHttp.send(); //连接服务器
var offset = Date.parse(XmlHttp.getResponseHeader("Date"));//获取标头中的时间
offset -= (new Date).getTime(); //获取本地时间与服务器时间的间隔
function ShowTime() //显示时间的方法
{
var d = new Date; //获取当前时间
d.setTime(d.getTime()+offset); //通过服务器和本地的时间间隔获取当前服务器时间
var ddd = new Date();
document.getElementById("webtime").innerHTML=d.format('hh:mm dd/MM/yyyy'); //显示服务器时间
}
setInterval("ShowTime()", "1000");Date.prototype.format = function(format)
{
var o =
{
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format))
format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
XmlHttp.send(); //连接服务器
var offset = Date.parse(XmlHttp.getResponseHeader("Date"));//获取标头中的时间
这两句之间用了大概3分钟左右是国外的空间有问题.国内的空间好像不会出这种缓慢的问题.
不知道是代码问题还是与服务器有关
var a = new Date()
a = a.getFullYear() + "" + (a.getMonth() +1) + ""+a.getDate() + ""+a.getHours() + ""+a.getMinutes()
Response.Write(a)
</script>
在服务器的启动时
<script type="text/javascript">
if (document.all) {
window.XMLHttpRequest = function() {
var $ = ['Microsoft.XMLHTTP', 'Msxml2.XMLHTTP'];
for (var i = 0; i < $.length; i++) { try { return new ActiveXObject($[i]) } catch (e) { } };
};
}
webDate = function(fn) {
var QQ = new XMLHttpRequest();
QQ.onreadystatechange = function() { QQ.readyState == 4 && (fn(new Date(QQ.getResponseHeader('Date')))) };
QQ.open('HEAD', '/?_=' + (-new Date));
QQ.send(null);
}
time2String = function(t) {
with (t) return [getFullYear(), '-'
, ('0' + (getMonth() + 1)).slice(-2), '-'
, ('0' + getDate()).slice(-2), ' '
, ('0' + getHours()).slice(-2), ':'
, ('0' + getMinutes()).slice(-2), ':'
, ('0' + getSeconds()).slice(-2)].join('')
}
setInterval(function() {
webDate(function(webTime) {
document.getElementById('serverTime').innerHTML = time2String(webTime);
})
}, 1000)
</script>
果果写的