Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使这个javascript函数真正收集服务器时间和倒计时,直到事件开始,而不是浏览器/客户端时间?_Javascript_Php_Jquery - Fatal编程技术网

如何使这个javascript函数真正收集服务器时间和倒计时,直到事件开始,而不是浏览器/客户端时间?

如何使这个javascript函数真正收集服务器时间和倒计时,直到事件开始,而不是浏览器/客户端时间?,javascript,php,jquery,Javascript,Php,Jquery,正如标题所说,我在这方面做得并不好,我正在努力如何做到这一点,当事件计时器启动时,它将倒计时,直到事件开始从服务器获得时间,而不指望浏览器/客户端时间?以目前的方式,所有人都将错过该活动,因为大多数人都有不同的时区,而且时区不正确:) 请给我一个线索。以下是完整的功能: <?php $d = date('D M d Y H:i:s O'); ?> <script type="text/javascript"> var currdate = new Date(<?ph

正如标题所说,我在这方面做得并不好,我正在努力如何做到这一点,当事件计时器启动时,它将倒计时,直到事件开始从服务器获得时间,而不指望浏览器/客户端时间?以目前的方式,所有人都将错过该活动,因为大多数人都有不同的时区,而且时区不正确:)

请给我一个线索。以下是完整的功能:

<?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>

var currdate=新日期();
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-小时;
var hrs2=FThrs2-小时;
var hrs3=FThrs3-小时;
var hrs01=BDWhrs1-hrs0;
var hrs02=BDWhrs2-hrs0;
var hrs03=BDWhrs3-hrs0;
var hrs04=BDWhrs4-hrs0;
var日=CSWday日-日;
var hrs001=CSWhrs-hrs00;
如果(天==7)
日=0;
如果((小时数>22)| |((小时数>=0)和&(小时数<7)))
{
如果(小时数>22)
hrsOut=7;
其他的
hrsOut=hrs1;
}
如果((小时数>6)和&(小时数<15))
hrsOut=hrs2;
如果((小时数>14)和&(小时数<23))
hrsOut=hrs3;
如果((hrs0>23)| |((hrs0>=0)和&(hrs0<6)))
{
如果(hrs0>23)
hrsOut2=6;
其他的
hrsOut2=hrs01;
}
如果((hrs0>5)和&(hrs0<12))
hrsOut2=hrs02;
如果((hrs0>11)和&(hrs0<18))
hrsOut2=hrs03;
如果((hrs0>17)和&(hrs0


我不能直接将其包含到脚本中以获取当前日期/时间吗?我不确定什么是最好的…当然,这也是有意义的。您可以让服务器端脚本初始化您的javascript脚本将使用的当前日期和时间。现在的问题是如何将所有这些都包含在我的当前脚本和php中?您可以可能给我一个例子?这样,我可以直接将
var currdate=new Date();
更改为您的示例中的上述内容,并且我的脚本中还有什么必须更改的?是的,所以将该行更改为var currdate=new Date($d):其余的都使用该日期对象,因此您无需更改任何其他内容。如果只是在两个数字之间倒计时,则不确定为什么您甚至需要知道客户端时间。您应该能够使用这两种方法计算服务器在倒计时结束前的时间,并输出在倒计时结束前的毫秒数,然后使用js进行计数降到0
<?php
$d = date('D M d Y H:i:s O');
echo "
<script>
var currdate = new Date($d);
</script>
";
?>