将PHP脚本添加到页脚时JavaScript计时器卡住

将PHP脚本添加到页脚时JavaScript计时器卡住,javascript,html,wordpress,Javascript,Html,Wordpress,当库存水平达到0时,我试图将我网站上的0库存文本(保存在标签中)转换为倒计时计时器。因此,我在页脚中添加了这段代码——但它似乎只是停留在页脚上,根本不倒计时。更换库存中的0文本也需要几秒钟的时间-我可以让它更快/更即时吗?以下是迄今为止的代码: //设置倒计时日期 var countDownDate=新日期(“2021年2月21日15:26:00”).getTime(); //每1秒更新一次计数 var x=setInterval(函数(){ //获取今天的日期和时间 var now=new

当库存水平达到0时,我试图将我网站上的
0库存
文本(保存在
标签中)转换为倒计时计时器。因此,我在页脚中添加了这段代码——但它似乎只是停留在页脚上,根本不倒计时。更换库存中的
0
文本也需要几秒钟的时间-我可以让它更快/更即时吗?以下是迄今为止的代码:

//设置倒计时日期
var countDownDate=新日期(“2021年2月21日15:26:00”).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);
//如果库存=0,则显示结果
列表=document.getElementsByClassName(“库存”);
如果(列表[0]。innerHTML==“0库存”){
列表[0]。innerHTML=days+“d”+hours+“h”+minutes+“m”+seconds+“s”;
}
//如果倒计时结束,则写下文本
如果(距离<0){
净间隔(x);
列表=document.getElementsByClassName(“库存”);
列表[0]。innerHTML=“项目已过期!”;
}
}, 1000);

1 in stock

您试图用新数据填充p,并以某种方式尝试读取旧数据,我刚刚将其分为两个跨度,以便您可以单独使用每个跨度,并更新JS以反映新结构

要加速第一次调用,请提取函数:

请注意,我们现在将“库存”和“倒计时”视为两种不同的东西

//设置倒计时日期
var countDownDate=新日期(“2021年2月21日15:26:00”).getTime();
函数ctd(){
//获取今天的日期和时间
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);
//console.log(天+小时+分钟+秒);
//如果库存=0,则显示结果
倒计时=document.getElementsByClassName(“倒计时”);
stock=document.getElementsByClassName(“库存级别”);
如果(股票[0]。innerHTML==“1”){
倒计时[0]。innerHTML=days+“d”+hours+“h”+minutes+“m”+seconds+“s”;
}
//如果倒计时结束,则写下文本
如果(距离<0){
净间隔(x);
countdown.innerHTML=“项目已过期!”;
}
}
ctd();//快跑
//每1秒更新一次计数
var x=设定间隔(ctd,1000)

1


我让它开始工作了。代码如下:

<script>
//Set the count down date
var countDownDate = new Date("Feb 20, 2019 18:26:00").getTime();
var startTimer=false;

list = document.getElementsByClassName("stock in-stock");
if(list[0].innerHTML=='1 in stock') {

    startTimer=true;
}

//Check if 1 left                                    
list = document.getElementsByClassName("stock in-stock");
    //Update the count every 1 second
    var x = setInterval(function() {

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

      //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);

      //Update the counter
      if(startTimer) {
          list[0].innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s ";
      }
      //If the count down is finished, write text
      if (distance < 0) {
        clearInterval(x);
        list = document.getElementsByClassName("stock in-stock");
        list[0].innerHTML = "Item expired!";
      }
    }, 1000);                             
</script>

//设置倒计时日期
var countDownDate=新日期(“2019年2月20日18:26:00”).getTime();
var startTimer=false;
列表=document.getElementsByClassName(“库存”);
如果(列表[0]。innerHTML=='1库存'){
startTimer=true;
}
//检查是否还有1个
列表=document.getElementsByClassName(“库存”);
//每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);
//更新计数器
if(startTimer){
列表[0]。innerHTML=days+“d”+hours+“h”+minutes+“m”+seconds+“s”;
}
//如果倒计时结束,则写下文本
如果(距离<0){
净间隔(x);
列表=document.getElementsByClassName(“库存”);
列表[0]。innerHTML=“项目已过期!”;
}
}, 1000);                             

看起来不像是关于PHP的问题或问题?也许把那个标签拿掉?非常感谢。:)更新后还回答了第二个问题