JavaScript倒计时、添加小时数和;会议记录
因此,我有下面的(秒倒计时)在良好的秩序。但是我试图在倒计时中加入小时和分钟。理想情况下保持相同的结构,并且只使用纯JS。我希望输出为: 此次拍卖还剩下X小时、X分钟和X秒强>JavaScript倒计时、添加小时数和;会议记录,javascript,jquery,Javascript,Jquery,因此,我有下面的(秒倒计时)在良好的秩序。但是我试图在倒计时中加入小时和分钟。理想情况下保持相同的结构,并且只使用纯JS。我希望输出为: 此次拍卖还剩下X小时、X分钟和X秒 var count=30; var counter=setInterval(timer, 1000); //1000 will run it every 1 second function timer() { count=count-1; if (count <=
var count=30;
var counter=setInterval(timer, 1000); //1000 will run it every 1 second
function timer()
{
count=count-1;
if (count <= 0)
{
clearInterval(counter);
return;
}
document.getElementById("timer").innerHTML=count + " secs"; // watch for spelling
}
var计数=30;
var计数器=设置间隔(计时器,1000)//1000将每1秒运行一次
函数计时器()
{
计数=计数-1;
如果(计算)
hours
是秒数除以以小时为单位的秒数(3600)四舍五入
minutes
是上述除法的剩余部分,除以一分钟内的秒数(60),向下舍入
seconds
是总秒数除以一分钟内秒数的剩余值
hour
之后的每一次计算都必须使用模数
计算得到剩余时间,因为您不关心该步骤的总时间,只需进入下一个刻度。类似以下内容:
var count = 30;
var counter = setInterval(timer, 1000); //1000 will run it every 1 second
function timer() {
count = count - 1;
if (count == -1) {
clearInterval(counter);
return;
}
var seconds = count % 60;
var minutes = Math.floor(count / 60);
var hours = Math.floor(minutes / 60);
minutes %= 60;
hours %= 60;
document.getElementById("timer").innerHTML = hours + "hours " + minutes + "minutes and" + seconds + " seconds left on this Sale!"; // watch for spelling
}
我会使用与其他方法类似的方法,但我不会依赖setInterval/setTimeout作为计时器,特别是如果用户可能会查看页面一段时间,因为它往往不准确
var endTime = new Date(2013, 10, 31).getTime() / 1000;
function setClock() {
var elapsed = new Date().getTime() / 1000;
var totalSec = endTime - elapsed;
var d = parseInt( totalSec / 86400 );
var h = parseInt( totalSec / 3600 ) % 24;
var m = parseInt( totalSec / 60 ) % 60;
var s = parseInt(totalSec % 60, 10);
var result = d+ " days, " + h + " hours, " + m + " minutes and " + s + " seconds to go!";
document.getElementById('timeRemaining').innerHTML = result;
setTimeout(setClock, 1000);
}
setClock();
此方法每次运行时都会计算现在和将来日期之间的差异,从而消除任何不准确之处
下面是一个示例:可能是这个jQuery插件(如果您使用jQuery)将是有用的矩。js也可能会有所帮助,但我不确定您是否应该使用当前时间与结束时间来计算实际时间,而不是增加计数器。这是因为setTimeout
不能保证以精确的1000毫秒运行,它可能每1050毫秒运行一次,过一会儿您的计数就会不正确。使用setTimeout
up trigger更新是正确的。这是格式;谢谢!但是如何切换小时和分钟的值?当前它们正在输出“0”。-CCWell..在当前脚本中只剩下30秒。因此,如果添加更多秒数(60秒为一分钟,3600秒为一小时)然后小时和分钟也会起作用。工作得很好。我只是在找一个时间记录器。我只需要做count=count+1
并删除clearInterval()
逻辑,因为我有另一个功能来清除它。干杯。不起作用。它告诉我2016年8月30日还有30天……实际上是今天。Javascript月份是零索引。新日期(2016年8月30日)
是9月。
var endTime = new Date(2013, 10, 31).getTime() / 1000;
function setClock() {
var elapsed = new Date().getTime() / 1000;
var totalSec = endTime - elapsed;
var d = parseInt( totalSec / 86400 );
var h = parseInt( totalSec / 3600 ) % 24;
var m = parseInt( totalSec / 60 ) % 60;
var s = parseInt(totalSec % 60, 10);
var result = d+ " days, " + h + " hours, " + m + " minutes and " + s + " seconds to go!";
document.getElementById('timeRemaining').innerHTML = result;
setTimeout(setClock, 1000);
}
setClock();