2010-08-05 93 views
5

我已經閱讀了很多jQuery cookie問題,並知道這裏有一個jQuery cookie插件(jQuery cookie)。沒有做太多的調查,問題是:有沒有一種方法可以確定cookie的到期日期?jQuery Cookie過期值

從jquery.cookie DOC:

/** 
* Get the value of a cookie with the given name. 
* 
* @example $.cookie('the_cookie'); 
* @desc Get the value of a cookie. 
* 
* @param String name The name of the cookie. 
* @return The value of the cookie. 
* @type String 
* 
* @name $.cookie 
* @cat Plugins/Cookie 
* @author Klaus Hartl/[email protected] 
*/ 

似乎並不認爲這個插件可以做到這一點?

我想這樣做的原因是我的cookie在5分鐘不活動後過期,並且Id想通知用戶他們的會話即將從Javascript過期。

回答

3

除非事情已經改變,你不能把這個值一個cookie,你可以設置它,但就是這樣,當它過期時,它不會再顯示在Cookie集合中,但是你不能看到它在5分鐘內過期。

你沿着會話終止線的東西最好的辦法是使用setTimeout()與正確的延遲,例如,如果是5分鐘,你可能要在4分鐘提醒30秒這樣的:

setTimeout(function() { 
    alert("Your session will expire in 30 seconds!"); 
}, 270000); //4.5 * 60 * 1000 
+0

欣賞答案,謝謝。由於我在每個後續頁面請求上通過PHP更新cookie,因此建議我只在每個頁面請求上設置cookie.expiration的超時時間 - (某個時間)向用戶發送消息?我想我只是不明白爲什麼你可以設置到期,但無法取回。 – Chris 2010-08-05 17:31:32

+0

@Chris - 我不確定這個推理,只知道文檔/ cookie API沒有獲取它的方法,如果你看看'document.cookie',你會發現它不在那裏:)是的,包括每個頁面上的超時,或者直接在一個包含的JavaScript文件中有該超時...我會做一個通知欄或除個人提醒之外的東西,但這個想法是一樣的:) – 2010-08-05 17:38:54

5
$.cookie("example", "foo", { expires: 7 }); 

將在7天后

沒有的JavaScript API,允許你檢查的終止日期,餅乾過期

+4

我想要過期值。我不問如何設置到期價值本身。 – Chris 2010-08-05 17:14:12

+0

沒有Javascript API,允許您檢查cookie的失效日期 – maestr0 2013-11-10 22:31:09

3

由於無法從JavaScript API訪問它,唯一的方法是將其與元數據並行存儲在內容中。

var textContent = "xxxx" 
    var expireDays = 10; 
    var now = new Date().getTime(); 
    var expireDate = now + (1000*60*60*24*expireDays); 
    $.cookie("myCookie", '{"data": "'+ textContent +'", "expires": '+ expireDate +'}', { expires: expireDays }); 

然後讀回(很明顯,增加保障的情況下,該Cookie已經過期):

var now = new Date().getTime(); 
var cookie = $.parseJSON($.cookie("myCookie")); 
var timeleft = cookie.expires - now; 
var cookieData = cookie.data; 

注意這不會是完全可靠的,如果在此期間,客戶端時鐘的變化,也就是說,由於到DST。

+0

var cookie = $ .parseJSON($。cookie(「myCookie」));不起作用。 @link http://stackoverflow.com/questions/1532193/reading-cookie-expiration-date – user470370 2013-09-24 08:32:07

+0

@ user470370:提供您包括Jquery和[Cookie插件](http://www.electrictoolbox.com/jquery -cookies /)並使用正確的json(我犯了一個錯誤,忘記了json字符串鍵的引號),它工作得很好。 http://jsfiddle.net/3ddLG/2/ – 2013-09-24 09:33:06