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

我有这个倒计时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*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天…=)