如何使这个javascript函数实际收集服务器时间和倒计时,直到事件开始而不是浏览器/客户端时间
How to make this javascript functions to actually gather server time and countdown until event starts instead of browser/client time?
正如标题所说,我对此并不擅长,我正在努力如何在启动事件计时器时倒计时,直到事件开始从服务器获取时间并且不指望浏览器/客户端时间?以目前的方式,所有人都会错过该事件,因为大多数事件都有不同的时区及其不正确的:)
请给我一个线索。这是完整的功能:
<?php $d = date('D M d Y H:i:s O'); ?>
<script type="text/javascript">
var currdate = new Date(<?php $d; ?>);
var day = currdate.getDay();
var hrs = currdate.getHours();
var hrs0 = currdate.getHours();
var hrs00 = currdate.getHours();
var mins = currdate.getMinutes();
var secs = currdate.getSeconds();
var CSWday = 7;
var CSWhrs = 19;
var FThrs1 = 6;
var FThrs2 = 14;
var FThrs3 = 22;
var BDWhrs1 = 5;
var BDWhrs2 = 11;
var BDWhrs3 = 17;
var BDWhrs4 = 23;
var FTmins1 = 59;
var FTsecs1 = 60;
var hrsOut = 0;
var hrsOut2 = 0;
var hrs1 = FThrs1 - hrs;
var hrs2 = FThrs2 - hrs;
var hrs3 = FThrs3 - hrs;
var hrs01 = BDWhrs1 - hrs0;
var hrs02 = BDWhrs2 - hrs0;
var hrs03 = BDWhrs3 - hrs0;
var hrs04 = BDWhrs4 - hrs0;
var day = CSWday - day;
var hrs001 = CSWhrs - hrs00;
if (day == 7)
day = 0;
if ((hrs > 22) || ((hrs >= 0) && (hrs < 7)))
{
if (hrs > 22)
hrsOut = 7;
else
hrsOut = hrs1;
}
if ((hrs > 6) && (hrs < 15))
hrsOut = hrs2;
if ((hrs > 14) && (hrs < 23))
hrsOut = hrs3;
if ((hrs0 > 23) || ((hrs0 >= 0) && (hrs0 < 6)))
{
if (hrs0 > 23)
hrsOut2 = 6;
else
hrsOut2 = hrs01;
}
if ((hrs0 > 5) && (hrs0 < 12))
hrsOut2 = hrs02;
if ((hrs0 > 11) && (hrs0 < 18))
hrsOut2 = hrs03;
if ((hrs0 > 17) && (hrs0 <= 23))
hrsOut2 = hrs04;
mins = FTmins1 - mins;
secs = FTsecs1 - secs;
var counter=setInterval(FTTimer, 1000);
var counter=setInterval(BDWTimer, 1000);
var counter=setInterval(CSWTimer, 1000);
function FTTimer()
{
secs=secs-1;
if (hrsOut < 0)
{
clearInterval(counter);
}
else if (mins < 0)
{
secs = 59;
mins = 59;
hrsOut = hrsOut - 1;
return;
}
else if (secs < 0)
{
secs = 59;
mins = mins - 1;
return;
}
if (secs < 10 && mins < 10 && hrsOut < 10)
document.getElementById("FTTimer").innerHTML="0"+hrsOut+":0"+mins+":0"+secs;
else if (mins < 10 && hrsOut < 10)
document.getElementById("FTTimer").innerHTML="0"+hrsOut+":0"+mins+":"+secs;
else if (secs < 10 && hrsOut < 10)
document.getElementById("FTTimer").innerHTML="0"+hrsOut+":"+mins+":0"+secs;
else if (secs < 10 && mins < 10)
document.getElementById("FTTimer").innerHTML=hrsOut+":0"+mins+":0"+secs;
else if (hrsOut < 10)
document.getElementById("FTTimer").innerHTML="0"+hrsOut+":"+mins+":"+secs;
else if (mins < 10)
document.getElementById("FTTimer").innerHTML=hrsOut+":0"+mins+":"+secs;
else if (secs < 10)
document.getElementById("FTTimer").innerHTML=hrsOut+":"+mins+":0"+secs;
else
document.getElementById("FTTimer").innerHTML=hrsOut+":"+mins+":"+secs;
}
function BDWTimer()
{
if (hrsOut2 < 0)
{
clearInterval(counter);
}
else if (mins < 0)
{
secs = 59;
mins = 59;
hrsOut2 = hrsOut2 - 1;
return;
}
else if (secs < 0)
{
secs = 59;
mins = mins - 1;
return;
}
if (secs < 10 && mins < 10 && hrsOut2 < 10)
document.getElementById("BDWTimer").innerHTML="0"+hrsOut2+":0"+mins+":0"+secs;
else if (mins < 10 && hrsOut2 < 10)
document.getElementById("BDWTimer").innerHTML="0"+hrsOut2+":0"+mins+":"+secs;
else if (secs < 10 && hrsOut2 < 10)
document.getElementById("BDWTimer").innerHTML="0"+hrsOut2+":"+mins+":0"+secs;
else if (secs < 10 && mins < 10)
document.getElementById("BDWTimer").innerHTML=hrsOut2+":0"+mins+":0"+secs;
else if (hrsOut2 < 10)
document.getElementById("BDWTimer").innerHTML="0"+hrsOut2+":"+mins+":"+secs;
else if (mins < 10)
document.getElementById("BDWTimer").innerHTML=hrsOut2+":0"+mins+":"+secs;
else if (secs < 10)
document.getElementById("BDWTimer").innerHTML=hrsOut2+":"+mins+":0"+secs;
else
document.getElementById("BDWTimer").innerHTML=hrsOut2+":"+mins+":"+secs;
}
function CSWTimer()
{
if (day < 0)
{
day = 6;
return;
}
else if (hrs001 < 0)
{
if (hrs001 == -1)
hrs001 = 23;
else if (hrs001 == -2)
hrs001 = 22;
else if (hrs001 == -3)
hrs001 = 21;
else if (hrs001 == -4)
hrs001 = 20;
day = day - 1;
return;
}
else if (mins < 0)
{
secs = 59;
mins = 59;
hrs001 = hrs001 - 1;
return;
}
else if (secs < 0)
{
secs = 59;
mins = mins - 1;
return;
}
if (secs < 10 && mins < 10 && hrs001 < 10)
document.getElementById("CSWTimer").innerHTML=day+":0"+hrs001+":0"+mins+":0"+secs;
else if (mins < 10 && hrs001 < 10)
document.getElementById("CSWTimer").innerHTML=day+":0"+hrs001+":0"+mins+":"+secs;
else if (secs < 10 && hrs001 < 10)
document.getElementById("CSWTimer").innerHTML=day+":0"+hrs001+":"+mins+":0"+secs;
else if (secs < 10 && mins < 10)
document.getElementById("CSWTimer").innerHTML=day+":"+hrs001+":0"+mins+":0"+secs;
else if (hrs001 < 10)
document.getElementById("CSWTimer").innerHTML=day+":0"+hrs001+":"+mins+":"+secs;
else if (mins < 10)
document.getElementById("CSWTimer").innerHTML=day+":"+hrs001+":0"+mins+":"+secs;
else if (secs < 10)
document.getElementById("CSWTimer").innerHTML=day+":"+hrs001+":"+mins+":0"+secs;
else
document.getElementById("CSWTimer").innerHTML=day+":"+hrs001+":"+mins+":"+secs;
}
</script>
<?php
$d = date('D M d Y H:i:s O');
echo "
<script>
var currdate = new Date($d);
</script>
";
?>
相关文章:
- 从工作日结束到下一个工作日开始的完整日历JS包装时间
- 如何使用MomentJS实现从特定时间开始的计数
- 如何用javascript计算从现在开始的时间
- 如何从某个时间开始预加载HTML5视频
- 如何在dhtmlxgantt中显示灯箱中的开始日期、结束日期和持续时间
- 画布在一段时间后开始滞后
- angularjs计算开始时间和当前时间之间的时间差
- 使用HTML5 Navigation Timing API时,导航开始时间设置为0
- 基础日期选择器、结束日期(和时间)不能早于开始日期(和时间)
- 高图表日期时间从错误的日期开始
- 结束日期作为基础日期时间选择器中的选定开始日期
- 如何设置开始时间
- 如何从上次运行javascript函数的时间开始
- jquery 添加“随机”内容以从当前时间开始每秒值
- 如何在spotify中从特定时间开始播放歌曲
- 每天在同一时间开始
- 如何从一个特殊的时间开始一个视频并链接它
- 如何使yAxis从一个特定的时间开始,条形图中的序列
- 使用javascript验证日期、时间开始和时间结束
- 从开始日期和时间开始倒计时