我尝试了很多东西,但我不太了解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;
}
我希望有人可以帮助我,尝试了近20个小时的事情,但我无法做到这一点。
答案 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;
}
注意:这种混合风格是一种糟糕的编码风格......对于测试好但你应该尽量避免它