我正在尝试制作一个倒数计数器。如果我使用来自用户机器的 JS 日期/时间,下面的代码工作正常。我想更改它以从服务器获取日期/时间。当我在JS代码中使用PHP日期时,除非我刷新页面,否则倒计时计时器不会计数的问题。以下是当前日期/时间的 php:$date = date('Y/m/d H:i:s');然后在这里我将 $date 添加到 JS 函数中:var DownDate = new Date("Feb 5, 2050 23:50:00").getTime();var ax = setInterval(function() {//var anow = new Date().getTime(); // JS date will work fine, but I don't want to rely on user's machine time. So next is the same but using php date/time.var anow = new Date("<?php echo $date; ?>").getTime();var adistance = DownDate - anow;var aminutes = Math.floor((adistance % (1000 * 60 * 60)) / (1000 * 60)); var aseconds = Math.floor((adistance % (1000 * 60)) / 1000); document.getElementById("timer").innerHTML = aminutes + "m " + aseconds + "s ";}, 1000);
1 回答
慕斯王
TA贡献1864条经验 获得超2个赞
PHP 代码只在服务器上执行,你不能在设定的时间间隔内循环执行 php 代码,这就是你的问题所在。
相反,执行一次并将其存储到一个变量中,然后让客户端每过一秒就更新变量(和 dom)。
var DownDate = new Date("Feb 5, 2050 23:50:00").getTime();
var anow = new Date("<?php echo $date; ?>").getTime();
var ax = setInterval(function() {
anow+= 1000
var adistance = DownDate - anow;
var aminutes = Math.floor((adistance % (1000 * 60 * 60)) / (1000 * 60));
var aseconds = Math.floor((adistance % (1000 * 60)) / 1000);
document.getElementById("timer").innerHTML =
aminutes + "m " + aseconds + "s ";
}, 1000);
添加回答
举报
0/150
提交
取消