3 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
你需要在 javascript 中做到這一點。
服務(wù)器為 cookie 設(shè)置新的過期時間
執(zhí)行超時的javascript
在頁面上再次重新加載 1,2
// save minute before expiration
setTimeout(saveWork, (9000-60)*1000);
function saveWork(){
// do your stuff
}

TA貢獻1812條經(jīng)驗 獲得超5個贊
不可能。document.cookie 包含這樣的字符串信息:
key1=value1;key2=value2;...
所以沒有關(guān)于日期的任何信息。
您可以將時間過期時間傳遞給 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 的函數(shù):(來源)
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 "";
}
并設(shè)置一個計時器:
let expireat = getCookie("EXPIREAT");
if (expireat) {
? let timeAlert = Number(expireat) - 60;
? setTimeout(function() {
? ? // Do something
? }, timeAlert);
}
請記住,用戶可以更改 cookie 的值。

TA貢獻1797條經(jīng)驗 獲得超4個贊
使用過期時間制作額外的cookie
setcookie("expiration_time", time,time()+9000);
經(jīng)過測試,這個cookie的時間
if( $_COOKIES['expiration_time'] + 60 < time() ){
//... you alert code
}
- 3 回答
- 0 關(guān)注
- 197 瀏覽
添加回答
舉報