Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.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 倒计时计时器在10分钟后消失,且不重置计数器_Javascript_Html - Fatal编程技术网

Javascript 倒计时计时器在10分钟后消失,且不重置计数器

Javascript 倒计时计时器在10分钟后消失,且不重置计数器,javascript,html,Javascript,Html,我正在用10分钟的倒计时。我在想,我怎么能让计数器在时间到了的时候停止显示,或者即使在你刷新页面后,也能从剩余的时间开始计数 //10分钟后 var时间(单位:分钟)=10; var current_time=Date.parse(new Date()); var截止日期=新日期(当前时间+时间,单位为分钟*60*1000); 剩余功能时间(结束时间){ var t=Date.parse(endtime)-Date.parse(new Date()); var秒=数学地板((t/1000)%6

我正在用10分钟的倒计时。我在想,我怎么能让计数器在时间到了的时候停止显示,或者即使在你刷新页面后,也能从剩余的时间开始计数

//10分钟后
var时间(单位:分钟)=10;
var current_time=Date.parse(new Date());
var截止日期=新日期(当前时间+时间,单位为分钟*60*1000);
剩余功能时间(结束时间){
var t=Date.parse(endtime)-Date.parse(new Date());
var秒=数学地板((t/1000)%60);
var分钟=数学地板((t/1000/60)%60);
可变小时数=数学楼层((t/(1000*60*60))%24);
风险天数=数学下限(t/(1000*60*60*24));
返回{
“总计”:t,
“天”:天,
“小时”:小时,
“分钟”:分钟,
“秒”:秒
};
}
功能运行时钟(id,结束时间){
var clock=document.getElementById(id);
函数更新_时钟(){
var t=剩余时间(结束时间);
clock.innerHTML=“DÉSE PRISA!”+“使用del código de desccuento'+“'desccuento5'”+“en los próximos”+t.minutes+“m'+t.seconds+”s'+,y ahorre un额外的5%的空间!”;
如果(t.total==0){
clearInterval(时间间隔);
}
}
update_clock();//首先运行函数一次以避免延迟
var timeinterval=setInterval(更新时钟,1000);
}
运行时钟('clockdiv',截止日期)
#clockdiv{
背景:#bfbf;
颜色:白色;
填充:6px;
边界半径:4px;
字体大小:16px;
边缘底部:16px;
}

尝试确定计时器何时达到0,并使用您的属性跟踪经过的时间,即使浏览器刷新。

尝试此代码,如果重新加载页面或在新窗口中打开页面,您可以设置倒计时的日期

    <!-- Display the countdown timer in an element -->
<p id="demo"></p>

<script>
// Set the date we're counting down to
var countDownDate = new Date("Jan 5, 2021 15:37:25").getTime();

// Update the count down every 1 second
var x = setInterval(function() {

  // Get today's date and time
  var now = new Date().getTime();

  // Find the distance between now and the count down date
  var distance = countDownDate - now;

  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Display the result in the element with id="demo"
  document.getElementById("demo").innerHTML = days + "d " + hours + "h "
  + minutes + "m " + seconds + "s ";

  // If the count down is finished, write some text
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }
}, 1000);
</script>

//确定我们倒计时的日期 var countDownDate=新日期(“2021年1月5日15:37:25”).getTime(); //每1秒更新一次倒计时 var x=setInterval(函数(){ //获取今天的日期和时间 var now=new Date().getTime(); //找出现在和倒计时日期之间的距离 var距离=倒计时日期-现在; //天、小时、分钟和秒的时间计算 变量天数=数学楼层(距离/(1000*60*60*24)); 可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60)); var分钟=数学楼层((距离%(1000*60*60))/(1000*60)); var秒=数学楼层((距离%(1000*60))/1000); //使用id=“demo”在元素中显示结果 document.getElementById(“demo”).innerHTML=days+d+hours+h +分钟+米+秒+秒; //如果倒计时结束,写一些文字 如果(距离<0){ 净间隔(x); document.getElementById(“demo”).innerHTML=“过期”; } }, 1000);
我重构了您的代码并用于存储计时器。请遵循以下示例:

HTML: 使用
setInterval


德塞普里萨!使用el código de
位于普罗西莫斯的“Descento”Descento 5
装载,是的,我要多加5%的小费!
JavaScript:
//保存计时器的Span元素
常量时钟=document.getElementById(“事件计时器”);
//持续时间(分钟)
常数持续时间=10;
函数resetStartTime(){
const startTime=Date.now();
const eventTime=持续时间*60*1000;
const eventDuration=新日期(开始时间+事件时间);
//保存到本地存储
setItem(“startTime”,eventDuration);
返回事件持续时间;
}
document.addEventListener(“DOMContentLoaded”,()=>{
//获取存储的时间
const startTime=新日期(
localStorage.getItem(“startTime”)| | resetStartTime()
);
//启动计时器
时间间隔=设置间隔(()=>{
//存储值-当前时间
const timer=startTime.getTime()-Date.now();
//如果要使用“天”和“小时”,请取消对这些行的注释
//施工天数=数学下限(计时器/(1000*60*60*24))
//常数小时=数学楼层((计时器%(1000*60*60*24))/(1000*60*60))
常数分钟=数学楼层((计时器%(1000*60*60))/(1000*60));
常数秒=数学地板((计时器%(1000*60))/1000);
//添加到DOM
clock.innerText=分钟+分钟+秒+秒;
//完成后清除并重置

如果(计时器时间用完后,您可以添加css规则来隐藏元素。如果重新启动计数器,则需要稍后再次删除该规则。但这是一种简单的方法。如果环境是浏览器,则使用两个计时器。第一个计时器周期性地将计数器写入存储器中的变量。第二个计时器周期性地读取仪表读数从存储中读取并检查其是否已超过设置值。该值不准确,但与重新启动网站无关。刷新时需要存储计时器信息才能重新加载,您可以使用浏览器本地存储。这必须具有多大的抗用户篡改能力?如果用户在重新加载之前清除本地存储,时钟将从头开始。您好!谢谢您的帮助。这将是一个商店网站。它是一个计时器,显示在购物车页面上,它从10计数到0,使用折扣。所以计划是让它在时间一到就消失,而不是每次重新加载页面时都重新启动。嗨,Shemona,这应该是一个评论,不是吗回答。非常感谢!它帮助我修复了!我非常感谢!