How to get cookie expiration date / creation date from javascript?
这是不可能的。 document.cookie 包含这样的字符串信息:
key1=value1;key2=value2;...
所以没有关于日期的任何信息。
您可以将过期时间传递给 javascript。一种方法是存储另一个 cookie,所以你有这个:
$expireAt = time() + 9000;
setcookie("USERNAME", $user,$expireAt);
setcookie("AUTHORID", $rec["id"],$expireAt);
setcookie("AUTH", "1",$expireAt);
setcookie("RIGHTS", $rec["rights"],$expireAt);
setcookie("EXPIREAT", $expireAt, $expireAt);
那么,这个函数获取cookie:(source)
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
并设置一个计时器:
let expireat = getCookie("EXPIREAT");
if (expireat) {
let timeAlert = Number(expireat) - 60;
setTimeout(function() {
// Do something
}, timeAlert);
}
请记住,用户可以更改 cookie 的值。