在两次都是变量的情况下如何创建倒计时

时间:2019-02-06 19:29:08

标签: javascript html

倒计时运行时,它要减去两次才能得到差值,但问题是,实际时间在增加,因此差值变大并且计时器倒数。

我正在创建一个学校时间表,计时器需要显示(完成)您上的一堂课,(直到被困)到下一堂课(完成)需要多长时间。我尝试了一些快速解决方法,我的编程不太先进。

function subtime(ctime, atime) {
  //Current time, Array time
  let cArr = ctime.split(":")[1] + "." + ctime.split(":")[2];
  let aArr = atime.split(":")[1] + "." + atime.split(":")[2];
  let ftime = (Math.round((Math.abs(cArr - aArr)) * 100) / 100).toString();
  return ftime.split(".")[0].concat(":", ftime.split(".")[1])
}

基本上,该功能将实际时间(军事时间)作为ctime,然后将班级结束时的军事时间作为atime。我的其他函数timetell已经定义了班级结束时间。我会这样说来调用该函数

subtime(time, numbers);

timetell函数看起来像这样

function timetell(array, i, side) {
  this.array = array[i].split("-")[side].replace(/\s/g, '');
  let side1 = this.array.slice(0, 2) + ":";
  let side2 = this.array.slice(-2);
  let answer = side1.concat(side2);

  return answer.concat(":00");

}

我得到时间的数组是:

var times = ["0905 - 0955", "1000 - 1050", "1055 - 1145", "1155 - 1245", "1250 - 1340", "1345 - 1435", "1440 - 1530"];

时间片所做的只是一个元素并将其分开,然后添加“:”以显示小时和分钟。

例如: 输入:

timetell(times, 1, 1);

因此,它将插补时间数组,在“ 1000-1050”时间插补1。然后选择1结束课程。 (以0开头)

输出:

'10:50:00'

我希望输出的内容是到下一堂课的时间,但是到下一堂课的时间实际上却在增加。

编辑:问题在于计时器现在不会从60秒倒计时,而是从99秒倒计时到40秒。此外,当计时器变为10的倍数时(即10,20,30),它会显示首先是数字,例如小时,然后说未定义。 例子: 您处于第二阶段,在20:undefined中,您将进入第三阶段。 您处于第二阶段,在20:67您将进入第三阶段。

时间将会像这样: 20:99 20:98 ... 20:41 20:未定义 19:99

0 个答案:

没有答案