我为JavaScript倒计时运行此脚本时遇到问题(使用this plugin)。它应该做的是采取开始时间,当前时间和结束时间,并显示剩余时间。
如果我在纪元时间用正常数字设置这些值一切正常,但我的问题是:如何设置当前时间和开始是真正的当前时间,以便倒计时是动态的?
我找到了这一行:Math.round(new Date().getTime()/1000.0);
但我不知道如何让它工作,考虑到我在我的HTML文件底部运行此脚本,在</html>
标记之前。
这是剧本:
<script>
$('.countdown').final_countdown({
start: '[amount Of Time]',
end: '[amount Of Time]',
now: '[amount Of Time]'
});
</script>
这就是我试图解决它的方法,但它不起作用:
//get the current time in unix timestamp seconds
var seconds = Math.round(new Date().getTime()/1000.0);
var endTime = '1388461320';
$('.countdown').final_countdown({
start: '1362139200',
end: endTime,
now: seconds
});
答案 0 :(得分:0)
听起来您希望将来从当前时间倒计时到某个固定点。
以下示例倒计时并显示从现在开始的剩余时间(无论何时可能)到下一分钟内的某个随机时间戳。
function startTimer(futureTimeStamp, display) {
var diff;
(function timer() {
// how many seconds are between now and when the count down should end
diff = (futureTimeStamp - Date.now() / 1000) | 0;
if (diff >= 0) {
display(diff);
setTimeout(timer, 1000);
}
}());
}
// wait for the page to load.
window.onload = function() {
var element = document.querySelector('#time'),
now = Date.now() / 1000,
// some random time within the next minute
futureTimeStamp = Math.floor(now + (Math.random() * 60));
// format the display however you wish.
function display(diff) {
var minutes = (diff / 60) | 0,
seconds = (diff % 60) | 0;
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
element.innerHTML = minutes + ":" + seconds;
}
startTimer(futureTimeStamp, display);
};
<span id="time"></span>
同样Math.round(new Date().getTime()/1000.0);
会给你自纪元以来的秒数,但是对于数字来说可能有点不诚实。我认为你可以通过发言来更好地服务:
var timestamp = Math.floor(Date.now() / 1000));
可能是更好的选择。
此外,我不确定您为什么需要开始时间,当前时间和结束时间。为了找到剩余的秒数,您只需知道定时器何时结束以及当前时间。