編輯:由於答案,一些問題得到解決,但它仍然無法正常工作。它現在在首頁加載時顯示正確的倒數計時,但一旦設置了cookie並重新加載頁面,它就會顯示錯誤的時間,並且每次重新加載都會重新啓動。我相應地更新了我的代碼。基於Cookie的倒計時器不起作用
我一直在尋找天的解決方案,沒有任何工作,因爲我需要它。我的目標非常簡單 - 我需要一個可以倒計時3天然後重複的計時器。實際上,對於每個人(服務器定義的時間)或本地(根據用戶第一次訪問的時間)它可以是相同的。我需要它不刷新頁面重新加載或一天結束。
所以我得出結論,我會需要cookies:當你第一次進入頁面時,定時器開始倒計時,直到從現在開始的3天。如果您離開網站並在2天內到達,則剩餘1天。如果您一週後離開並再次來,計時器將再次開始計數3天。
對於我的使用plugin by Keith Wood。對於cookie,我使用plugin by Klaus Hartl。這是我到目前爲止的代碼:
$(document).ready(function(){
if (!$.cookie('offerTimer')){
var now = new Date();
timerValue = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 3);
cookie = $.cookie('offerTimer', timerValue, { expires: 7, path: '/' });
}else {
cookie = $.cookie('offerTimer');
}
$('#until3d').countdown({until: cookie, format: 'HMS'});
console.log('cookie is ' + cookie);
});
在第一頁負載(當Cookie是沒有確定)的cookie返回:
offerTimer=Tue%20Jan%2007%202014%2000%3A00%3A00%20GMT%2B0800%20(%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D1%8F%D1%80%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F%20(%D0%B7%D0%B8%D0%BC%D0%B0)); expires=Thu, 30 Jan 2014 09:09:37 GMT; path=/
在第二次及以後訪問的cookie的回報:
Tue Jan 07 2014 00:00:00 GMT+0800 (Красноярское время (зима))
那裏有西裏爾字母,因爲我來自俄羅斯。我幾乎可以肯定,我可能需要的只是讓cookie以相應的格式返回日期,以便倒計時功能正常工作。但我不明白它如何顯示正確的時間與第一個輸出...此外,我試圖設置日期的格式爲倒計時插件的格式(爲此我使用其他插件),結果是要麼相同或根本不起作用。 PS:我知道很容易繞過這樣的計時器,但在這種情況下它不被視爲一個問題。
編輯:更改了一下代碼,感謝user2310289。
的確,我一直在更換部分代碼,並沒有注意到,謝謝!我要更改頂端文章中的代碼。但它仍然不起作用。 – user2816581
變量的類型是'timerValue'。此外,我已更新我的回答 –