如何使用Javascript进行实时产品倒计时

如何使用Javascript进行实时产品倒计时,javascript,jquery,timer,countdown,Javascript,Jquery,Timer,Countdown,我需要实时倒计时。例如,我将设置一个日期(2020年2月28日),它将在(2020年2月29日)结束。在这两个日期之间,我将设置产品数量。它将不断减少。 所以我希望产品的数量为零 而且, 当不同的用户从不同的计算机输入时,产品的数量应继续保持在他们停止的位置。我不能这么做 我寻找解决办法,但找不到 我需要帮助。。 谢谢你 这是我的js代码 today = new Date(); BigDay = new Date("February "+day+",2020

我需要实时倒计时。例如,我将设置一个日期(2020年2月28日),它将在(2020年2月29日)结束。在这两个日期之间,我将设置产品数量。它将不断减少。 所以我希望产品的数量为零

而且, 当不同的用户从不同的计算机输入时,产品的数量应继续保持在他们停止的位置。我不能这么做

我寻找解决办法,但找不到

我需要帮助。。 谢谢你

这是我的js代码

today           = new Date();
BigDay          = new Date("February "+day+",2020");

msPerDay        = 24 * 60 * 60 * 1000;

timeLeft        = (BigDay.getTime() - today.getTime());

e_daysLeft      = timeLeft / msPerDay;
daysLeft        = Math.floor(e_daysLeft);
e_hrsLeft       = e_daysLeft*24;
hrsLeft         = Math.floor(e_hrsLeft);
minsLeft        = Math.floor((e_hrsLeft - hrsLeft)*60);

var productCount = 400;

document.write("<p>There are only<b> " + daysLeft + " days " + hrsLeft +" hours and " + minsLeft + " minutes left </b> Until December 25th 2025</p>"); 
today=新日期();
BigDay=新日期(“2020年2月+日”);
msPerDay=24*60*60*1000;
timeLeft=(BigDay.getTime()-today.getTime());
e_daysLeft=时间间隔/毫秒/天;
daysLeft=数学楼层(e_daysLeft);
e_hrsLeft=e_daysLeft*24;
hrsLeft=数学楼层(e_hrsLeft);
分钟左=数学楼层((e_hrsLeft-hrsLeft)*60);
var productCount=400;
文件。填写(到2025年12月25日为止,只剩下“+daysLeft+”days“+hrsLeft+”小时和“+minsLeft+”分钟);

这里是一个小片段

var productCount=400;
函数倒计时(){
日=28;
今天=新日期();
BigDay=新日期(“2020年2月+日”);
msPerDay=24*60*60*1000;
timeLeft=(BigDay.getTime()-today.getTime());
e_daysLeft=时间间隔/毫秒/天;
daysLeft=数学楼层(e_daysLeft);
e_hrsLeft=e_daysLeft*24;
hrsLeft=数学楼层(e_hrsLeft);
分钟左=数学楼层((e_hrsLeft-hrsLeft)*60);
document.getElementById('output').innerHTML=“到2025年12月25日,只剩下“+daysLeft+”天“+hrsLeft+”小时和“+minsLeft+”分钟”;
}
//拜访起点
倒计时
setInterval(function(){countdown();productCount-=1;},60000)//每1分钟后自动计时一次

函数更新程序(){
future=Date.parse(“2020年2月29日11:30:00”);
现在=新日期();
diff=未来-现在;
天数=数学下限(差值/(1000*60*60*24));
小时=数学楼层(差值/(1000*60*60));
分钟=数学楼层(差值/(1000*60));
秒=数学楼层(差异/1000);
d=天;
h=小时-天*24;
m=分钟-小时*60;
s=秒-分钟*60;
document.getElementById(“计时器”)
.innerHTML=
''+d+'天'+
''+h+'小时'+
''+m+'分钟'+
''+s+'秒';
}
setInterval('updateTimer()',1000)
正文{
文本对齐:居中;
填充:70px 50px;
背景#0D1A29;
字体系列:“Helvetica Neue”、“Open Sans”、Helvetica、arial、Sans serif;
}
#计时器{
字号:3em;
字号:100;
颜色:白色;
文本阴影:0 0 20px#48C8FF;
div{
显示:内联块;
最小宽度:90px;
跨度{
颜色:#B1CDF1;
显示:块;
字体大小:.35em;
字体大小:400;
}
}
}

这是一个shippet,其中包含了vars和用于构建的函数


const day = 28;
const BigDay = new Date("February "+day+",2020");
const BigDayTime = BigDay.getTime();
const msPerDay = 24 * 60 * 60 * 1000;
const productCount = 400;

const getLeftTimeObject = () => {
  const today = new Date();
  const timeLeft = BigDayTime - today.getTime();
  const e_daysLeft = timeLeft / msPerDay;
  const daysLeft = Math.floor(e_daysLeft);
  const e_hrsLeft = e_daysLeft*24;
  const hrsLeft = Math.floor(e_hrsLeft);
  const minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
  return {
    days: daysLeft,
    hours: hrsLeft,
    minutes: minsLeft
  }
}

const setCounter = () => {
  const { days, hours, minutes } = getLeftTimeObject();
  const counterContainer = document.querySelector(.'counter-container');
  if(counterContainer) {
    document.querySelector('.counter-container .days').innerHTML = days;
    document.querySelector('.counter-container .hours').innerHTML = hours;
    document.querySelector('.counter-container .minutes').innerHTML = minutes;
  } else {
    document.write(
      `
       <p class="counter-container">
          There are only
          <b><span class="days">${days}</span> days<b>
          <b><span class="hours">${hours}</span> hours and<b>
          <b><span class="minutes">${minutes}</span> minutes left<b>
          Until February ${day}th 2020
       </p>
      `
    );
  }
}

setInterval(() => {
  setCounter();
}, productCount)


常数日=28;
const BigDay=新日期(“2020年2月+日”);
const BigDay=BigDay.getTime();
常数msPerDay=24*60*60*1000;
const productCount=400;
常量getLeftTimeObject=()=>{
const today=新日期();
const timeLeft=bigdayer-today.getTime();
const e_daysLeft=timeLeft/msPerDay;
const daysLeft=数学楼层(e_daysLeft);
常数e_hrsLeft=e_daysLeft*24;
const hrsLeft=数学楼层(e_hrsLeft);
const minsLeft=数学楼层((e_hrsLeft-hrsLeft)*60);
返回{
days:daysLeft,
小时:hrsLeft,
分钟:左分钟
}
}
常量setCounter=()=>{
常量{days,hours,minutes}=getLeftTimeObject();
const counterContainer=document.querySelector(.'counter-container');
if(反容器){
document.querySelector('.counter container.days')。innerHTML=days;
document.querySelector('.counter container.hours')。innerHTML=hours;
document.querySelector('.counter container.minutes')。innerHTML=minutes;
}否则{
document.write(
`

只有 ${days}天 ${hours}小时和 还剩${minutes}分钟 至2020年2月${day}

` ); } } 设置间隔(()=>{ setCounter(); },productCount)
我知道了。它起作用了,但有一个问题是这样的,当不同的用户从不同的计算机输入时,产品的数量应该继续保持在他们停止的位置。我无法做到这一点。为此,您需要每次调用
product
count from
db