JQuery cookie истекает время не правильно - PullRequest
1 голос
/ 22 октября 2019

Я установил cookie, используя jquery. но дата consoleLog и дата истечения не совпадают.

function setCookie() {   
const date = new Date(); //Tue Oct 22 2019 17:45:53 GMT+0900 (한국 표준시)   
const expires = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59); // Tue Oct 22 2019 23:59:59 GMT+0900 (한국 표준시) 
$.cookie('AAA', '', { expires }); 

}

Но дата истечения - 2019-10-22T14: 59: 59.000Z время не совпадает. Я нашел эту проблему в Chrome. Ваша помощь очень ценится!

1 Ответ

1 голос
/ 22 октября 2019

Простой ответ

Когда вы вводите дату не в формате UTC, срок действия javascript автоматически преобразует дату в GMT.

JavaScript Cookie expires time must be GMT/UTC

Выможет использовать следующее, чтобы иметь дату UTC, которая заканчивается в 23: 59: 59

const date = new Date(); 
const expires = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));
console.log(expires.toUTCString());

Обновление В соответствии с ОП, предложенным в комментарии, предоставить другой подход, чтобы ему не приходилось использовать методы getFullYear, getMonth и т. Д. Вот как можно преобразовать currentDate в UTC, который заканчивается в 23:59:59, без использования функций Date.UTC и year / month:

  var curDate = new Date();
  curDate.setUTCHours(23);
  curDate.setUTCMinutes(59);
  curDate.setUTCSeconds(59);
  console.log(curDate.toISOString())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...