倒计时运行时,它要减去两次才能得到差值,但问题是,实际时间在增加,因此差值变大并且计时器倒数。
我正在创建一个学校时间表,计时器需要显示(完成)您上的一堂课,(直到被困)到下一堂课(完成)需要多长时间。我尝试了一些快速解决方法,我的编程不太先进。
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