Я устанавливаю cookie-файлы с помощью Javascript, и он работает нормально, но он не требует времени истечения, которое я даю. Он продолжает принимать значение сеанса независимо от того, что я даю, ниже приведен код, который я взял отсюда

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=/'; 

Я попытался дать жестко запрограммированное значение, но он все еще показывает истечение времени как сеанс в Chrome Dev Tool

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

Есть идеи, что я делаю не так?

Я думаю, что все в порядке. Я установил время на 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); } 

истечение

Вот функция, которую я написал другое приложение. Не стесняйтесь использовать повторно:

 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; }; 

Ниже приведены фрагменты кода для создания и удаления файлов cookie. Печенье установлено на 1 день.

 // 1 Day = 24 Hrs = 24*60*60 = 86400. 
  1. Используя max-age:

     document.cookie = "cookieName=cookieValue; max-age=86400; path=/;"; 
     document.cookie = "cookieName=; max-age=- (any digit); path=/;"; 
  2. Используя 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=/"; 

Будет установлено значение на год.

Используйте как это ( источник ):

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

Я хотел бы повторить ответ Полина и просто добавить одну вещь, если вы все еще застряли. Этот код, безусловно, работает, чтобы установить конкретное время истечения срока действия куки. Одна из проблем, с которой вы можете столкнуться, заключается в том, что если вы используете Chrome и обращаетесь к своей странице через « http: // localhost …» или «file: //», Chrome не будет хранить куки. Это легко исправить, если использовать простой http-сервер (например, http-сервер узла, если вы этого еще не сделали) и явно перейти на свою страницу как « http://127.0.0.1 », и в этом случае Chrome БУДЕТ хранить куки для локальных развитие. Я немного повесил трубку, потому что, если вы этого не сделаете, у вашего ключа expires просто будет значение «session», когда вы исследуете его в консоли или в Dev Tools.

Ваш браузер может быть настроен на прием только сеансовых файлов cookie; если это ваш случай, любое время истечения преобразуется вашим браузером в сеанс, вы можете изменить эту настройку вашего браузера или попробовать другой браузер без такой конфигурации

Лусио Замбон

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,