Javascript 每3天倒计时一次

Javascript 每3天倒计时一次,javascript,Javascript,我有点困惑。我需要得到一个月的第一天应该开始计算3天。当过期重新启动时 var today=新日期(), end=新日期(today.getFullYear()、today.getMonth()、today.getDate()+3); var timer=setInterval(函数(){ 变量差异时间、dd、hh、mm、ss、str; 如果((新日期().getDate()==end.getDate())| |(新日期().getDate()==1)){ 结束=新 }否则{ differen

我有点困惑。我需要得到一个月的第一天应该开始计算3天。当过期重新启动时

var today=新日期(),
end=新日期(today.getFullYear()、today.getMonth()、today.getDate()+3);
var timer=setInterval(函数(){
变量差异时间、dd、hh、mm、ss、str;
如果((新日期().getDate()==end.getDate())| |(新日期().getDate()==1)){
结束=新
}否则{
differenceTime=结束-新日期();
dd=parseInt(差分时间/(1000*60*60*24));
hh=parseInt(差分时间/(60*60*1000))%24;
mm=parseInt(差分时间/(1000*60))%60;
ss=parseInt(差分时间/1000)%60;
document.querySelector('.days').innerHTML=格式(dd);
document.querySelector('.hours').innerHTML=format(hh);
document.querySelector('.minutes').innerHTML=格式(mm);
document.querySelector('.seconds').innerHTML=format(ss);
}
}, 1000);
函数格式(num){
返回(9


我尝试尽可能多地重用您的代码。如果我正确理解了你的问题,这应该可以解决问题。 如果使用,您可能会得到一些更干净的代码,特别是在格式化文本和计算日期之间的差异时

请记住,支票并不完全准确,因为它将日期与秒进行比较

var numberOfDays=3;
var today=新日期();
var start=getNextStartDate(今天);
var end=getNextEndDate(今天);
var timer=setInterval(函数(){
变量差异时间、dd、hh、mm、ss、str;
var now=新日期();
如果(现在>=结束){
开始=getNextStartDate(现在);
end=getNextEndDate(现在);
}否则{
差异时间=结束-现在;
dd=parseInt(差分时间/(1000*60*60*24));
hh=parseInt(差分时间/(60*60*1000))%24;
mm=parseInt(差分时间/(1000*60))%60;
ss=parseInt(差分时间/1000)%60;
document.querySelector('.days').innerHTML=格式(dd);
document.querySelector('.hours').innerHTML=format(hh);
document.querySelector('.minutes').innerHTML=格式(mm);
document.querySelector('.seconds').innerHTML=format(ss);
}
}, 1000);
函数getNextEndDate(fromDate){
返回新日期(fromDate.getFullYear()、fromDate.getMonth()、fromDate.getDate()+numberOfDays);
}
函数getNextStartDate(currentDate){
var currentDay=currentDate.getDate();
var指数=数学单元(当前日/3);
var nextStartDay=1+numberOfDays*索引
返回新日期(currentDate.getFullYear()、currentDate.getMonth()、nextStartDay);
}
函数格式(num){
返回(9

我尝试尽可能多地重用您的代码。如果我正确理解了你的问题,这应该可以解决问题。 如果使用,您可能会得到一些更干净的代码,特别是在格式化文本和计算日期之间的差异时

请记住,支票并不完全准确,因为它将日期与秒进行比较

var numberOfDays=3;
var today=新日期();
var start=getNextStartDate(今天);
var end=getNextEndDate(今天);
var timer=setInterval(函数(){
变量差异时间、dd、hh、mm、ss、str;
var now=新日期();
如果(现在>=结束){
开始=getNextStartDate(现在);
end=getNextEndDate(现在);
}否则{
差异时间=结束-现在;
dd=parseInt(差分时间/(1000*60*60*24));
hh=parseInt(差分时间/(60*60*1000))%24;
mm=parseInt(差分时间/(1000*60))%60;
ss=parseInt(差分时间/1000)%60;
document.querySelector('.days').innerHTML=格式(dd);
document.querySelector('.hours').innerHTML=format(hh);
document.querySelector('.minutes').innerHTML=格式(mm);
document.querySelector('.seconds').innerHTML=format(ss);
}
}, 1000);
函数getNextEndDate(fromDate){
返回新日期(fromDate.getFullYear()、fromDate.getMonth()、fromDate.getDate()+numberOfDays);
}
函数getNextStartDate(currentDate){
var currentDay=currentDate.getDate();
var指数=数学单元(当前日/3);
var nextStartDay=1+numberOfDays*索引
返回新日期(currentDate.getFullYear()、currentDate.getMonth()、nextStartDay);
}
函数格式(num){
返回(9


你的问题没有多大意义。你能澄清一下你想要实现什么吗?你想从月初算起倒数3天吗?@rpbaltazar,即3天过去了,计时器必须重新启动。但之后会与第3天进行比较,还是与第1天进行比较?你在乎你是哪一个月吗?或者当你改变月份时,从第一天开始重新开始?有必要每三天和每月的第一天你的问题没有多大意义。你能澄清一下你想要实现什么吗?你想从月初算起倒数3天吗?@rpbaltazar,即3天过去了,计时器必须重新启动。但之后会与第3天进行比较,还是与第1天进行比较?你在乎你是哪一个月吗?或者当你改变月份的时候,你会从第一天开始重新开始?有必要每三天和每个月的第一天确认你非常匹配,兄弟!很高兴提供帮助,欢迎使用Stack Overflow。如果此答案解决了您的问题,请将其标记为已接受。再次感谢,兄弟!非常感谢你,兄弟!很高兴提供帮助,欢迎使用Stack Overflow。如果此答案解决了您的问题,请将其标记为已接受。再次感谢,兄弟!