Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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_Countdown - Fatal编程技术网

使用javascript进行倒计时和重置计数

使用javascript进行倒计时和重置计数,javascript,jquery,countdown,Javascript,Jquery,Countdown,我想在我的网站上显示倒计时。适用于所有用户,但我不想使用任何后端语言。 倒计时从20开始,在每1分钟后我会将数字减少1。表示在2min之后,数值将为18,当数值达到3时,数值应重置为20。我使用时差来正确倒计时,但重置不起作用。我有两个功能 function change_html() { var start_number = 20; var start = new Date("November 11, 2020 00:00:00"); // This will ge

我想在我的网站上显示倒计时。适用于所有用户,但我不想使用任何后端语言。 倒计时从
20开始
,在每
1分钟后
我会将数字减少
1
。表示在
2min
之后,数值将为
18
,当数值达到
3
时,数值应重置为
20
。我使用时差来正确倒计时,但重置不起作用。我有两个功能

function change_html() {
  var start_number = 20;
  var start = new Date("November 11, 2020 00:00:00"); // This will get the all milisec
  var end = new Date(); // This will get the all milisec of current
  var final = (get_difference(start,end)); // This will return all the mins passed
  var new_start = (final/20); // This will get how many 20 are passed
  var new_final = new_start.toString();
  new_final = new_final.split(".");
  var final_to_show = new_start-parseInt(new_final[0]);
  final_to_show = final_to_show*20; // This will get how many numbers are remain to complete 20
  final_to_show = Math.round(((20)-final_to_show));
  document.getElementById('html_element').innerHTML = final_to_show;
}
第二个用于将毫秒转换为分钟

function get_difference(start,end) {
  var difference =((end.getTime() - start.getTime()) / 1000)/60;
  return Math.abs(Math.round(difference));
}
我不想在重新加载时重置倒计时,循环是无止境的。 我不明白重置怎么办,因为它不是基于任何静态值,它将在jQuery和Javascript中完成。请帮我做这件事,或者建议我用另一种方法做。

你只需要使用一个
最复杂的是设置17分钟的倒计时,以抵消3分,第一次开始是20分。
…你应该看看

const showElement=document.getElementById('html\u元素')
,一秒=1000
,一分钟=一秒*60
,countMax=20
,countMin=3
,countRange=countMax-countMin+1
,startDate=(新日期(“2020年11月11日00:00:00”)。getTime()
,timeNowDiff=()=>Math.floor(Math.abs(((new Date()).getTime()-startDateT)/一分钟)
;
showElement.textContent=countMax-(timeNowDiff()%countRange)
设置间隔(()=>
{
showElement.textContent=countMax-(timeNowDiff()%countRange)
}
,一秒*10);//每10秒检查一次显示更改…

每分钟更改一次:直到3
让我知道是否还有其他建议。感谢您的回复。我只想在jQuery或纯JavaScript中执行此操作。您写道:
当它达到3时,数字应该重置为20
-->所以这只是一个17mn的倒计时循环,数字从20到3?我不明白您的意思,请重置它自我重新加载我不想这样,因为这个页面会在max user的选项卡上打开,并且所有的计时器都是一样的。不,问题不一样,值每分钟都会改变,就像你的问题一样。我忘了提到循环是无止境的,在重新加载时没有重置