Je crée un cookie avec Javascript et cela fonctionne bien, mais cela ne prend pas le temps d'expiration que je donne. Il continue à prendre la valeur de la session, peu importe ce que je donne. Ci-dessous, le code que j'ai pris ici
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=/';
J'ai essayé de donner une valeur codée en dur, mais il montre quand même expire en tant que session dans chrome dev outil
var tempExp = 'Wed, 31 Oct 2012 08:50:17 GMT';
document.cookie = aaa+'='+sStr+';expires='+tempExp+';path=/';
Une idée de ce que je fais mal?
Je pense que c'est ok. J'ai mis le temps à 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);
}
Voici une fonction pour laquelle j'ai écrit une autre application. N'hésitez pas à réutiliser:
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;
};
Vous trouverez ci-dessous des extraits de code permettant de créer et de supprimer un cookie. Le cookie est configuré pour 1 jour.
// 1 Day = 24 Hrs = 24*60*60 = 86400.
En utilisant max-age:
document.cookie = "cookieName=cookieValue; max-age=86400; path=/;";
document.cookie = "cookieName=; max-age=- (any digit); path=/;";
En utilisant expires:
var expires = (new Date(Date.now()+ 86400*1000)).toUTCString();
document.cookie = "cookieName=cookieValue; expires=" + expires + 86400) + ";path=/;"
document.cookie = "cookie_name=cookie_value; max-age=31536000; path=/";
Définira la valeur pour un an.
Utilisez comme ceci ( source ):
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=/";
}
J'aimerais appuyer la réponse de Polin et ajouter une chose au cas où vous seriez toujours bloqué. Ce code fonctionne certainement pour définir une heure d'expiration de cookie spécifique. Un problème que vous pouvez rencontrer est que si vous utilisez Chrome et accédez à votre page via " http: // localhost ..." ou "fichier: // ", Chrome ne conservera pas les cookies. Pour ce faire, utilisez un simple serveur http (comme le serveur http de node si vous ne l'avez pas encore fait) et accédez à votre page de manière explicite en tant que" http://127.0.0.1 "dans ce cas Chrome CONSERVERA des cookies pour le développement local. Cela m'a bloqué un peu, si vous ne le faites pas Pour ce faire, votre clé d'expiration aura simplement la valeur de "session" lorsque vous l'examinerez dans la console ou dans les outils de développement.