使用javascript在php函数中以小时/分钟/秒倒计时

时间:2014-08-21 12:05:36

标签: javascript php countdown

我尝试了很多东西,但我不太了解javascript。我有一个倒计时脚本,但它只在几秒钟内倒计时,但我需要几小时和几秒钟。

这是代码:

function countDown($i, $verschil){

$msg = "

<script type='text/javascript'>
     var seconds". $i."=". $verschil.";
     function display". $i."()
     {
       seconds". $i."=seconds". $i."-1;
       if(seconds". $i."<0)
       {
          countdown". $i.".innerHTML=\"0\";
       }
        else
        {
           var countdown". $i." = document.all? document.all[\"cd".$i."\"] : document.getElementById ? document.getElementById (\"cd". $i."\")
           : \"\";
           if (countdown". $i.")
          {
            countdown". $i.".innerHTML=seconds". $i.";
            setTimeout('display". $i."()',1000);
          }
       }
     }
    display". $i."();
  </script>

";

return $msg;

}
  • $ i =倒计时名称, $ verschil =倒计时秒数

我希望有人可以帮助我,尝试了近20个小时的事情,但我无法做到这一点。

1 个答案:

答案 0 :(得分:0)

你可以尝试这个..我只是在没有检查它的情况下编写它。没有Promis这个工作

function countDown($name, $time){

$seconds = gmdate("G", $time);
$minutes = gmdate("i", $time);
$hours   = gmdate("s", $time);

$msg = "

<script type='text/javascript'>
     var seconds".$name."=".$seconds."
     var minutes".$name."=".$minutes."
     var hours".$name."=".$hours."
     function display". $name."()
     {
        if(hours".$name." != 0 && minutes".$name." != 0 && seconds".$name." != 0) {
            if(seconds".$name." > 0) {
                seconds".$name." = seconds".$name."-1;
            } else {
                if(minutes".$name." > 0) {
                    minutes".$name." = minutes".$name."-1;
                } else {
                    hours".$name."= hours".$name."-1;
                }
            }

            var countdown".$name." = document.all? document.all[\"cd".$name."\"] : document.getElementById ? document.getElementById (\"cd". $name."\")
           : \"\";
           if (countdown". $name.")
          {
            countdown". $name.".innerHTML= ''+hours".$name."+':'+minutes".$name."+':'+seconds".$name.";
            setTimeout('display". $name."()',1000);
          }

        } else {
            countdown". $name.".innerHTML=\"0:0:0\";
        }
     }
    display". $name."();
  </script>

";

return $msg;

}

注意:这种混合风格是一种糟糕的编码风格......对于测试好但你应该尽量避免它