90 votes

Comment puis-je définir un cookie avec une date d'expiration ?

J'installe un cookie avec JavaScript et cela fonctionne bien mais il ne prend pas le temps d'expiration que je donne. Il continue à prendre la valeur de la session indépendamment de ce que je donne, ci-dessous est le code que j'ai pris de 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 l'outil de développement de chrome affiche toujours l'expiration de la session.

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 ?

80voto

polin Points 1176

J'ai réglé le temps sur 1000*36000.

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

expiration

47voto

user8640104 Points 688

Les extraits de code ci-dessous permettent de créer et de supprimer un cookie. Le cookie est défini pour 1 jour.

// 1 Day = 24 Hrs = 24*60*60 = 86400.
  1. En utilisant max-age :

    • Création du cookie :

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

    • Suppression du cookie :

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

  2. En utilisant les expirations :

    • Syntaxe pour créer le cookie pour un jour :

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

27voto

Johnny Leung Points 489

Voici une fonction que j'ai écrite pour une autre application. N'hésitez pas à la 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;
};

16voto

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

Fixe la valeur pour un an.

3voto

Mark Zer Points 41

Utilisez comme ceci ( fuente ):

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=/";
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X