在运行这个脚本进行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
});发布于 2015-11-21 01:31:32
听起来你想从当前时间倒计时到未来的某个固定点。
下面的示例倒计时并显示从现在(无论何时)到下一分钟内某个随机时间戳的剩余时间。
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));可能是一个更好的选择。
另外,我不确定你为什么需要开始时间,当前时间和结束时间。为了找到剩余的秒数,您只需要知道计时器应该何时结束以及当前时间。
https://stackoverflow.com/questions/33829460
复制相似问题