JS根据服务器时间倒计时

时间:2023-01-17 17:08:53

JS根据服务器时间倒计时

<!DOCTYPE html>
<html>
<meta charset="utf-8" />
<head>
<title>倒计时</title>


<script type="text/javascript">
/* 注意:需要放在服务端运行才能看到效果 */
get=function (id){return document.getElementById(id)}
if(document.all){
window.XMLHttpRequest=function(){
var get=['Microsoft.XMLHTTP','Msxml2.XMLHTTP'];
for(var i=0;i<get.length;i++){try{return new ActiveXObject(get[i])}catch(e){}};
};
}
webDate=function(fn){
var Htime=new XMLHttpRequest();
Htime.onreadystatechange=function(){Htime.readyState==4&&(fn(new Date(Htime.getResponseHeader('Date'))))};
Htime.open('HEAD', '/?_='+(-new Date));
Htime.send(null);
}
//初始化 time targetTime
window.time=null;
targetTime=new Date();
//时间格式化
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('')
}
//倒计时
int2time=function (m){
m-=(D=parseInt(m/86400000))*86400000;
m-=(H=parseInt(m/3600000))*3600000;
S=parseInt((m-=(M=parseInt(m/60000))*60000)/1000);
return D+'天'+H+'小时'+M+'分'+S+'秒'
}
//设置多少秒后重新获取服务器时间
/*setInterval(function (){
webDate(function (webTime){
//webTime.setSeconds(webTime.getSeconds()-2); //减一秒
time=webTime;
})
},500000) */
//服务器时间
webDate(function (webTime){
//webTime.setSeconds(webTime.getSeconds()-2); //减一秒
time=webTime;
});
//隔一秒刷新
setInterval(function (){
get('web').innerHTML=time2String(time);
get('locale').innerHTML=time2String(new Date);
time.setSeconds(time.getSeconds()+1); //减一秒
//时间对比 倒计时
if(time==null){}
else if(time.getFullYear()==1970){
get('time').innerHTML = '网络出错!';
return ;}
else{
if ((targetTime-time)<0) {
get('time').innerHTML = '结束';
}else{
get('time').innerHTML=int2time(targetTime-time);
}
}
},1000)
</script>
</head>
<body>
设定时间 :<span id="locaTime">loading...</span><br />
<!--设定时间+30:<span id="locaTime2">loading...</span><br /> -->
服务器时间:<span id='web'>loading...</span><br />
本地时间:<span id="locale">loading...</span><br />
倒计时时间:<span id="time">loading...</span>
<script type="text/javascript" charset="utf-8">

var endTime='2016-08-17 17:17:00'; //设置结束时间 初始化
targetTime=new Date(endTime);
document.getElementById('locaTime').innerHTML=time2String(targetTime);
//targetTime.setMinutes(targetTime.getMinutes()+30);
//document.getElementById('locaTime2').innerHTML=time2String(targetTime);
</script>
</body>
</html>