jQuery cookie过期值

jQuery cookie过期值,jquery,cookies,Jquery,Cookies,我在这里读了很多关于jquerycookie的问题,知道有一个jquerycookie插件()。在没有做太多调查的情况下,问题是:有没有办法确定cookie的过期日期 从jquery.cookie文档: /** * Get the value of a cookie with the given name. * * @example $.cookie('the_cookie'); * @desc Get the value of a cookie. * * @param String name

我在这里读了很多关于jquerycookie的问题,知道有一个jquerycookie插件()。在没有做太多调查的情况下,问题是:有没有办法确定cookie的过期日期

从jquery.cookie文档:

/**
* 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/klaus.hartl@stilbuero.de
*/
这个插件似乎不能做到这一点吗

我之所以要这样做,是因为我的cookie在不活动5分钟后过期,我想通知用户他们的会话即将从Javascript过期

$.cookie("example", "foo", { expires: 7 });
将在7天后过期


没有Javascript API允许您检查cookie的过期日期,除非发生了更改,否则您无法从cookie获取此值,您可以设置它,但仅此而已,当它过期时,它将不再显示在cookie集合中……但您无法看到它在5分钟内过期

在会话到期期间,最好使用正确的延迟,例如,如果是5分钟,您可能希望在4分30秒时发出警报,如下所示:

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

由于无法从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已经过期,请添加保护措施):


注意,如果同时客户端时钟发生变化(例如,由于DST的原因),这将不是完全可靠的。

我需要过期值。我不是问如何设置过期值本身。没有Javascript API允许您检查Cookie的过期日期。感谢您的回答,谢谢。因为我在每个后续页面请求上都通过PHP更新cookie,所以您建议我只在每个页面请求上设置cookie.expiration(某个时间)的超时来向用户发送消息?我想我只是不明白为什么你可以设置一个过期日期,但却无法取回它。@Chris-我不确定这个原因,只要知道document/cookie API没有获取它的方法,如果你查看
document.cookie
你会发现它不在那里:)并且在每个页面上都包含超时,或者直接在包含的JavaScript文件中设置超时……我会亲自做一个通知栏或是除了警报之外的其他事情,但想法是一样的:)var cookie=$.parseJSON($.cookie(“mycokie”));不起作用@link@user470370:如果您确实包含Jquery并使用正确的json(我犯了一个错误,忘记了在json字符串的键周围加引号),它就可以正常工作。请考虑在服务器端存储这样一个值会有问题。例如,在PHP中,$_COOKIE['myCookie']将只获取其值的第一个字符。
var now = new Date().getTime();
var cookie = $.parseJSON($.cookie("myCookie"));
var timeleft = cookie.expires - now;
var cookieData = cookie.data;