制造商倒数计时器对jquery或js如何倒计时(H:i:s)?

时间:2013-10-27 07:13:28

标签: javascript jquery

美好的一天。

很抱歉,如果问题已经存在 - 我找不到答案(如果答案已经存在,请给我链接)

我有代码:

<div id="counttime">06:00:00</div> //h:i:s

我想制作一个倒数计时器,时间里的女主角随时间减少1秒,而当时间将是00:00(i:s)将执行函数func();

决定不应该是第三方插件,只是纯粹的js或jquery。

我开始制作剧本,但不知道下一步是什么......

var start = $('#counttime').html();
var CountArrTime = (start.split(':')).length;
alert(CountArrTime);
if(CountArrTime == '3'){
var h_start = CountArrTime[0]; // hours start
var m_start = CountArrTime[1]; // minutes start
var s_start = CountArrTime[2]; // secounds start
}
else if(CountArrTime == '2'){
var m_start = CountArrTime[0]; // minutes start
var s_start = CountArrTime[1]; // secounds start
}
div counttime中的结果(当时间结束时)<00>应为00:00(分钟:分区);

如何在我的例子中将小时,分钟,秒倒数?

2 个答案:

答案 0 :(得分:1)

感谢您提供链接帮助。

我回答了我的问题:

JSFIDLE for test

var timer = $('#counttime').html();
timer = timer.split(':');

if(timer.length == 3){
var hours = timer[0];
var minutes = timer[1];
var seconds = timer[2];
}
else if(timer.length == 2){
var hours = 0;
var minutes = timer[0];
var seconds = timer[1];
}

if(hours > 0 || minutes > 0 || seconds > 0){

setInterval(function() {

seconds -= 1;


if (seconds < 0 && minutes > 0 && hours > 0) {
    minutes -= 1;
    seconds = 59;

}

else if (seconds < 0 && minutes == 0 && hours > 0) {
    hours -= 1;
    minutes = 59;
    seconds = 59;

}

else if (seconds < 0 && minutes > 0 && hours == 0) {
    hours = 0;
    minutes -= 1;
    seconds = 59;
}

if(hours > 0 && hours < 10 && ((hours+'').length != 2)) hours = '0' + hours;

if ((minutes < 10) && ((minutes+'').length < 2)) minutes = '0' + minutes;

if (seconds < 10 && length.seconds != 2) seconds = '0' + seconds;

   if(hours > 0){hoursN = hours + ':';}else{hoursN = '';}
    $('#counttime').html(hoursN + minutes + ':' + seconds);

}, 1000);

}

答案 1 :(得分:1)

这是我的看法。

注意尺寸,如果你离开并回来,它实际上会保持正确的时间

Live Demo

function pad(num) {
  return num<10?"0"+num:num;
}
$(function() {
  var tCont = $('#counttime');
  var timer = tCont.html().split(':');

  if (timer.length === 2) timer.unshift(0);
  var endMilli= timer[0]*60*60*1000;
  endMilli += timer[1]*60*1000
  endMilli += timer[2]*1000;
  if(endMilli > 0) {
    var endTime = new Date(Date.now()+endMilli);   
    var tId = setInterval(function() {
      var diff = endTime.getTime()-Date.now();
      if (diff<=0) {
        tCont.html("00:00:00");
        clearInterval(tId);
      }
      else {
        var d = new Date(diff);
        hh = pad(d.getUTCHours()); 
        mm = pad(d.getMinutes());
        ss = pad(d.getSeconds());
        tCont.html(""+hh+":"+mm+":"+ss);
      }
    },300);      
  }
});