2017-01-31 13 views
0

今日の時間から特定の時間までの残り時間をカウントダウンしたいと思います。しかし、私はブラウザをリフレッシュするときに開始から始まります。毎回ブラウザをリフレッシュするタイミング機能を修正するには?

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 = new Date(Date.parse(new Date()) + 20 * 24 * 60 * 60 * 1000); 
initializeClock('test', deadline); 
+0

:このように、そこにこの(クッキーなど)を行うには、いくつかの方法がありますが、おそらく最も簡単なこれはあなたのgetTimeRemaining機能で利用されるだろうlocalStorage

を使用するようになります'var deadline'は常に現在の日付(' new Date() ')にある程度の時間を加えたものに設定されています。締め切りは設定された日付であり、すべての負荷で変更される予定ではありません。 –

答えて

0

、ユーザーがページを閉じた後に戻ってくる時が使用できるように、あなたは残り時間を永続化する必要があります:私はこのproblem.Hereが私のソースコードで修正することはできません。第二に

function getTimeRemaining(endtime) { 

    // Check to see if there is a previous time already stored in localStorage 
    if(localStorage.getItem('timeRemaining')){ 

    // There is, use that: 
    return JSON.parse(localStorage.getItem('timeRemaining')); 
    } 

    // If not, generate the correct time remaining: 

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

    // Turn answer into a string: 
    var timeRemaining = JSON.stringify({ 
    'total': t, 
    'days': days, 
    'hours': hours, 
    'minutes': minutes, 
    'seconds': seconds 
    }); 

    // Store data in localStorage: 
    localStorage.setItem('timeRemaining', timeRemaining); 

    return timeRemaining; 
} 
+0

私はJSONに精通していませんが、飛行機でJavaScriptを書いていただければ役に立ちます。 –

+0

@RokibulHasan JSONは標準のECMAScriptオブジェクトです(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON)。それは普通のJavaScriptです。 –

関連する問題