Javascript 如何设置不断扩展自身的计时器
我已经建立了一个带有计时器的弹出窗口。当计时器结束时,我希望它再延长一天。我已经走了这么远,它延长了自己一天一次,但后来它退出了 也许你对如何进行有什么想法 谢谢Javascript 如何设置不断扩展自身的计时器,javascript,jquery,Javascript,Jquery,我已经建立了一个带有计时器的弹出窗口。当计时器结束时,我希望它再延长一天。我已经走了这么远,它延长了自己一天一次,但后来它退出了 也许你对如何进行有什么想法 谢谢 //Make countdown var setInfiniteTime = '{{ $actiepopup->infiniteTime }}'; // Update the count down every 1 second var x = setInterval(function() { // Set the
//Make countdown
var setInfiniteTime = '{{ $actiepopup->infiniteTime }}';
// Update the count down every 1 second
var x = setInterval(function() {
// Set the date we're counting down to
// Get todays date and time
var currentDate = new Date().getTime();
// get countdown time
var countDownDate = new Date(countDownTimeUntil).getTime();
// console.log('countdowndateBefore' + countDownDate);
// check in infinite time is set
if (setInfiniteTime == 'Yes') {
if (currentDate >= countDownDate) {
// var i;
// for (var i = 0; i < 999999; i++) {
var countDownDate = new Date(countDownTimeUntil).getTime() + 86400000;
// console.log(i);
// }
}
}
// console.log('currentdate' + currentDate);
// console.log('countdowndate' + countDownDate);
// Find the distance between now and the count down date
var distance = countDownDate - currentDate;
// 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="countdown"
$("#countdown").text(days + "d " + hours + "h " + minutes + "m " + seconds + "s ");
// If the count down is finished, write some text
if (distance < 0) {
clearInterval(x);
$("#countdown").text("Actie beeïndigd");
}
}, delayInMilliseconds);
//倒计时
var setInfiniteTime='{{$actiepopup->infiniteTime}}';
//每1秒更新一次倒计时
var x=setInterval(函数(){
//确定我们倒计时的日期
//获取今天的日期和时间
var currentDate=new Date().getTime();
//倒计时
var countDownDate=新日期(countDownTimeUntil).getTime();
//log('countdowndateBefore'+countDownDate);
//设置了无限时间签入
如果(setInfiniteTime==“是”){
如果(当前日期>=倒计时日期){
//var i;
//对于(var i=0;i<999999;i++){
var countDownDate=新日期(countDownTimeUntil).getTime()+86400000;
//控制台日志(i);
// }
}
}
//console.log('currentdate'+currentdate);
//console.log('countdowndate'+countdowndate);
//找出现在和倒计时日期之间的距离
var距离=倒计时日期-当前日期;
//天、小时、分钟和秒的时间计算
变量天数=数学楼层(距离/(1000*60*60*24));
可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
var分钟=数学楼层((距离%(1000*60*60))/(1000*60));
var秒=数学楼层((距离%(1000*60))/1000);
//在id为“倒计时”的元素中显示结果
$(“#倒计时”).text(天+天+小时+小时+分钟+米+秒+秒);
//如果倒计时结束,写一些文字
如果(距离<0){
净间隔(x);
$(“#倒计时”).text(“Actie beeïndigd”);
}
},延迟毫秒);
希望你有足够的信息
另外,如果使用布尔语句,请使用true
或false
,因为这样更容易使用
if (setInfiniteTime) {
setInterval(() => {
var countDownDate = new Date(countDownTimeUntil).getTime() + 86400000
}, 86400000)
}
谢谢你的建议。如果我错了,请纠正我,但当我使用setInterval时,它将不起作用,因为每次加载页面时都会执行脚本。因此,它将重置间隔。。弹出窗口将显示在网络商店中,因此会有大量的交互。然后,这是一个完全不同的场景,需要将今天的日期存储在会话中,根据该会话执行条件检查,或者存储变量服务器端并对其进行检查。也许可以尝试进行调整,以便人们可以帮助您。