Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript倒计时、添加小时数和;会议记录_Javascript_Jquery - Fatal编程技术网

JavaScript倒计时、添加小时数和;会议记录

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 <=

因此,我有下面的(秒倒计时)在良好的秩序。但是我试图在倒计时中加入小时和分钟。理想情况下保持相同的结构,并且只使用纯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 <= 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();