我不明白为什么几个小时的搜索让我两手空空。情况是这样的:我的网站用户可以设置活动开始的日期和时间。该日期和时间作为时间戳存储在数据库中。我想为他们显示倒计时。所以,我查询数据库
SELECT TIMESTAMPDIFF(SECOND, NOW(), start)
FROM events
WHERE eid = '110';
这将返回事件设置开始之前剩余的秒数。我想要的只是能够在 a 中输出span
天数、小时数、分钟数和秒数。
这是我到目前为止的javascript:
在阅读了评论、搜索更多内容并一起破解了一些东西之后,这是我更新的代码:
<span id="countdown-1"><?php echo $timeToEvent; ?></span>
(如果有更合适的方法可以将我的“直到事件的秒数”值添加到脚本中,请纠正我。)
secs = parseInt(document.getElementById('countdown-1').innerHTML,10);
setTimeout("countdown('countdown-1',"+secs+")", 1000);
function countdown(id, timer){
function pad(num) {
return num > 9 ? num : '0'+num;
};
timer--;
days = Math.floor( timer / 86400 ),
hours = Math.floor( timer / 3600 ),
mins = Math.floor( timer / 60 ),
secs = Math.floor( timer ),
dd = days,
hh = hours - days * 24,
mm = mins - hours * 60,
ss = secs - mins * 60;
clock = dd + ' days ' + pad(hh) + ':' + pad(mm) + ':' + pad(ss) ;
document.getElementById(id).innerHTML = clock;
if ( timer > 0 ) {
setTimeout("countdown('" + id + "'," + timer + ")", 1000);
} else {
window.location.reload(true);
}
}
此代码有效。但是,正如我上面写的,我不知道是否应该$timeToEvent
更直接地将 php 变量传递给脚本。在 javascript 将其更改为我想要看到的内容之前,实际的秒数出现在跨度中大约 1 秒,这有点令人讨厌。(顺便说一句,在这种情况下,我并不太关心准确性;我不介意时间漂移。)