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

Creating a timer with passing a PHP variable

本文关键字:变量 创建 计时器 PHP      更新时间:2024-01-11

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

到目前为止的代码是:

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

但这只是删除计时器。我猜数据可能没有通过?有人想让我克服这个问题吗?

你在使用它后定义$variable。移动

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

以前

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