通过传递PHP变量创建计时器

时间:2013-12-01 00:06:00

标签: javascript php timer

我找到/修改了一个倒计时到特定时间的计时器。

目前的代码是:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function counter() {
var t = "2013-12-01 13:00:00".split(/[- :]/);
var gametime = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
var now = new Date();
var timeDiff = gametime.getTime() - now.getTime();
var timer = setTimeout('counter()');
if (timeDiff <= 0) {
        clearTimeout(timer);
    }
var seconds = Math.floor(timeDiff / 1000);
var minutes = Math.floor(seconds / 60);
var hours = Math.floor(minutes / 60);
var days = Math.floor(hours / 24);
hours %= 24;
    minutes %= 60;
    seconds %= 60;
document.getElementById("days").innerHTML = days;
document.getElementById("hours").innerHTML = hours;
document.getElementById("mins").innerHTML = minutes;
document.getElementById("sec").innerHTML = seconds;
}
</script>
</head>
<body>
Time remaining: <label id=days></label>:<label id=hours></label>:<label id=mins></label>:<label id=sec></label>
<script type="text/javascript">counter();</script>
</body>
</html>

这是我到目前为止陷入困境的地方。我想要的是从数据库获取时间到PHP变量,并将其传递给javascript中的t变量。

我想象的可以做到这样:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function counter() {
var variable = <? echo (json_encode($variable)) ?>;
var t = variable.split(/[- :]/);
var gametime = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
var now = new Date();
var timeDiff = gametime.getTime() - now.getTime();
var timer = setTimeout('counter()');
if (timeDiff <= 0) {
        clearTimeout(timer);
    }
var seconds = Math.floor(timeDiff / 1000);
var minutes = Math.floor(seconds / 60);
var hours = Math.floor(minutes / 60);
var days = Math.floor(hours / 24);
hours %= 24;
    minutes %= 60;
    seconds %= 60;
document.getElementById("days").innerHTML = days;
document.getElementById("hours").innerHTML = hours;
document.getElementById("mins").innerHTML = minutes;
document.getElementById("sec").innerHTML = seconds;
}
</script>
</head>
<body>
Time remaining: <label id=days></label>:<label id=hours></label>:<label id=mins></label>:<label id=sec></label>
<?php $variable = "2013-12-01 13:00:00";?>
<script type="text/javascript">counter();</script>
</body>
</html>

但那只是删除计时器。我估计数据可能没有通过?有人想让我过去吗?

1 个答案:

答案 0 :(得分:0)

您在使用后定义$variable。移动

<?php $variable = "2013-12-01 13:00:00";?>

var variable = <? echo (json_encode($variable)) ?>;