Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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计时器和php变量有问题_Javascript_Php - Fatal编程技术网

javascript计时器和php变量有问题

javascript计时器和php变量有问题,javascript,php,Javascript,Php,我已经做了很长一段时间了,但似乎无法解释为什么这个使用PHP变量的javascript计时器实际上不会倒计时 这是我的密码 <script> <?php if($_SESSION['mydropdown'] == 1){ $var = ($_SESSION['timer'] + 0.1 * 60) - time(); } else { $var = ($_SESSION[

我已经做了很长一段时间了,但似乎无法解释为什么这个使用PHP变量的javascript计时器实际上不会倒计时

这是我的密码

<script>
        <?php
        if($_SESSION['mydropdown'] == 1){
        $var = ($_SESSION['timer'] + 0.1 * 60) -  time();
        }
        else {
             $var = ($_SESSION['timer'] + 1440 * 60) -  time();
        }
        ?>

        setInterval(function() { 
            var difference = Math.floor('<?php echo $var ;?>');
            var seconds = fixIntegers(difference % 60);
            difference = Math.floor(difference / 60);

            var minutes = fixIntegers(difference % 60);
            difference = Math.floor(difference / 60);

            var hours = fixIntegers(difference % 24);
            difference = Math.floor(difference / 24);

            var days = difference;
            $("#Timer").text(seconds + " Seconds"+ minutes + "m" + hours + "h" + days + "d" );
            }, 1000);

    </script>

    You will be logged out in : <span id="Timer"></span>

setInterval(函数(){
变量差=数学下限(“”);
var秒=固定整数(差%60);
差值=数学下限(差值/60);
var分钟数=固定整数(差值%60);
差值=数学下限(差值/60);
var小时数=固定整数(差异%24);
差异=数学楼层(差异/24);
var天数=差异;
$(“#计时器”).text(秒+秒+分钟+米+小时+小时+天+天);
}, 1000);
您将在以下时间注销:
基本上,如果
下拉列表是1,则第一个计时器应该是6秒,实际上是6秒,但是它在6秒上是静止的,根本不倒计时。。。我直接从另一个正确倒计时的函数中修改了这个函数,但我似乎无法找出这个函数的错误所在,以及为什么它实际上不会倒计时。基本上我希望它从6到5到4,依此类推到0,如果是6秒

我安装了jquery/jscript,因为我的另一个计时器正在工作,它不包含php变量


提前感谢

放置此
var difference=Math.floor()setInterval
调用的匿名函数外部的code>语句。您不需要
单引号

您的代码应该如下所示:

var difference = Math.floor('<?php echo $var ;?>');

setInterval(function() { 
    var d = difference;                       // This line is added
    var seconds = fixIntegers(difference % 60);
    difference = Math.floor(difference / 60);

    var minutes = fixIntegers(difference % 60);
    difference = Math.floor(difference / 60);

    var hours = fixIntegers(difference % 24);
    difference = Math.floor(difference / 24);

    var days = difference;
    difference = d - 1;                       // This line is added
    $("#Timer").text(seconds + " Seconds"+ minutes + "m" + hours + "h" + days + "d" );
}, 1000);
var差=Math.floor(“”);
setInterval(函数(){
var d=difference;//添加此行
var秒=固定整数(差%60);
差值=数学下限(差值/60);
var分钟数=固定整数(差值%60);
差值=数学下限(差值/60);
var小时数=固定整数(差异%24);
差异=数学楼层(差异/24);
var天数=差异;
difference=d-1;//添加了此行
$(“#计时器”).text(秒+秒+分钟+米+小时+小时+天+天);
}, 1000);

请发布浏览器收到的JavaScript代码(查看URL的源代码)。@AbhiBeckert我没有跟上我右键单击页面并点击查看源代码,这与上面发布的解释完全相同!然而,它从6直接跳到了60@Jim,我在代码中添加了两行,请检查again@Jim,我想当倒计时变为零时,您可能需要停止计时器。或者您可能希望重定向到登录页面。希望你能做到!否则问新问题。有没有办法自动重定向,我有一个“header(Location:login.php)”,但是我必须刷新它才能返回,它不会自动重定向,如果你知道我的意思,当计时器达到0时,它会调用它,但是我需要在页面返回之前刷新loaded@Jim,因此,发布一个新问题。