javascript set cookie con scadenza

Sto impostando un cookie con Javascript e funziona bene, ma non sta prendendo il tempo di scadenza che sto dando. Continua a prendere il valore della sessione indipendentemente da ciò che io do, di seguito è il codice che ho preso da qui

var now = new Date(); var time = now.getTime(); var expireTime = time + 1000*60; now.setTime(expireTime); var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT'; document.cookie = aaa+'='+sStr+';expires='+now.toGMTString()+';path=/'; 

Ho provato a dare un valore hard-coded ma continua a mostrare scadere come sessione nello strumento chrome dev

 var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT'; document.cookie = aaa+'='+sStr+';expires='+tempExp+';path=/'; 

Qualche idea su cosa sto facendo male?

Penso che sia ok. Ho impostato il tempo su 1000 * 36000.

 function display() { var now = new Date(); var time = now.getTime(); var expireTime = time + 1000*36000; now.setTime(expireTime); var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT'; document.cookie = 'cookie=ok;expires='+now.toGMTString()+';path=/'; //console.log(document.cookie); } 

scadenza

Ecco una funzione che ho scritto un’altra applicazione. Sentiti libero di riutilizzare:

 function writeCookie (key, value, days) { var date = new Date(); // Default at 365 days. days = days || 365; // Get unix milliseconds at current time plus number of days date.setTime(+ date + (days * 86400000)); //24 * 60 * 60 * 1000 window.document.cookie = key + "=" + value + "; expires=" + date.toGMTString() + "; path=/"; return value; }; 
  1. Utilizzando max-age

    • Sintassi per la creazione del cookie per un giorno :

       document.cookie = "cookieName=cookieValue; max-age=86400; path=/;"; 

      Creerà un cookie per 24 ore (1 giorno) = 24 * 60 * 60 = 86400

    • Sintassi per l’eliminazione del cookie :

       document.cookie = "cookieName=; max-age=- (any digit); path=/;"; 
  2. Utilizzando expires

    • Sintassi per la creazione del cookie per un giorno :

       document.cookie = "cookieName=cookieValue;expires=" + new Date(Date.now() + 86400) + ";path=/;"; 

Usa in questo modo

 function setCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); document.cookie = c_name+"="+c_value+"; path=/"; } 

fonte: http://www.w3schools.com/js/js_cookies.asp

 document.cookie = "cookie_name=cookie_value; max-age=31536000; path=/"; 

Imposterà il valore per un anno.

Vorrei mettere in secondo piano la risposta di Polin e aggiungere una cosa nel caso tu sia ancora bloccato. Questo codice funziona sicuramente per impostare un tempo specifico di scadenza del cookie. Un problema che potresti avere è che se stai utilizzando Chrome e accedendo alla tua pagina tramite ” http: // localhost …” o “file: //”, Chrome non memorizzerà i cookie. La soluzione più semplice consiste nell’utilizzare un semplice server http (come il server http del nodo, se non lo hai già fatto) e navigare esplicitamente nella tua pagina come ” http://127.0.0.1 ” nel qual caso Chrome memorizzerà i cookie per il locale sviluppo. Questo mi ha bloccato per un po ‘perché, se non lo fai, la tua chiave scade avrà semplicemente il valore di “sessione” quando lo indaga nella console o in Dev Tools.