Javascript 特定日期倒计时
我有这个倒计时JavaScript代码,但每次我刷新浏览器时它都会重新启动。Javascript 特定日期倒计时,javascript,html,css,Javascript,Html,Css,我有这个倒计时JavaScript代码,但每次我刷新浏览器时它都会重新启动。 我希望它倒计时到某个特定日期。 我怎样才能做到这一点 函数getTimeRemaining(endtime){ 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*6
我希望它倒计时到某个特定日期。
我怎样才能做到这一点
函数getTimeRemaining(endtime){
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,endtime){
var clock=document.getElementById(id);
var daysSpan=clock.querySelector('.days');
var hoursSpan=clock.querySelector('.hours');
var minutesSpan=clock.querySelector('.minutes');
var secondsSpan=clock.querySelector('.seconds');
函数updatelock(){
var t=GetTime剩余时间(endtime);
daysSpan.innerHTML=t.days;
hoursSpan.innerHTML=('0'+t.hours).slice(-2);
minuteSpan.innerHTML=('0'+t.minutes).slice(-2);
secondsSpan.innerHTML=('0'+t.seconds).slice(-2);
如果(t.total可能是因为每次刷新浏览器时,如果在当前时间上加21天,则结束时间是相同的。因此每次都有21天的间隔。要解决此问题,请设置固定时间,如Date.parse('2018-01-11 20:00:00')
从@ChrisG进行正确更新
function getTimeRemaining(endtime) {
var t = Date.parse(endtime) - Date.parse(new Date());
var seconds = Math.floor((t / 1000) % 60);
var minutes = Math.floor((t / 1000 / 60) % 60);
var hours = Math.floor((t / (1000 * 60 * 60)) % 24);
var days = Math.floor(t / (1000 * 60 * 60 * 24));
return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
function initializeClock(id, endtime) {
var clock = document.getElementById(id);
var daysSpan = clock.querySelector('.days');
var hoursSpan = clock.querySelector('.hours');
var minutesSpan = clock.querySelector('.minutes');
var secondsSpan = clock.querySelector('.seconds');
function updateClock() {
var t = getTimeRemaining(endtime);
daysSpan.innerHTML = t.days;
hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);
if (t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
var timeinterval = setInterval(updateClock, 1000);
}
var deadline = "2018-01-30T12:00:00-0500";
initializeClock('clockdiv', deadline);
函数getTimeRemaining(endtime){
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,endtime){
var clock=document.getElementById(id);
var daysSpan=clock.querySelector('.days');
var hoursSpan=clock.querySelector('.hours');
var minutesSpan=clock.querySelector('.minutes');
var secondsSpan=clock.querySelector('.seconds');
函数updatelock(){
var t=GetTime剩余时间(endtime);
daysSpan.innerHTML=t.days;
hoursSpan.innerHTML=('0'+t.hours).slice(-2);
minuteSpan.innerHTML=('0'+t.minutes).slice(-2);
secondsSpan.innerHTML=('0'+t.seconds).slice(-2);
如果(t.total接近末尾,则将行更改为类似于var-deadline=“2018-04-01T12:00:00-0500”
(愚人节东部时间中午)将当前的倒计时保存到cookie或其他东西上,当页面刷新时,从那里加载它以返回到最后一个倒计时。@hungrykoala如果您只是倒计时到特定的时间点,则没有理由这样做。看起来从加载时间开始倒计时到21天。您是否尝试在那里输入特定的日期?+21*24*60*60*1000
请注意,getTimeRemaining()
已经解析了日期。可能不需要对其进行两次解析。是的,确实如此。但是如果仍然需要添加21天…=)