По какой причине удаляются куки раньше чем задано?
Вчера задавал вот это вопрос и заметил что куки удаляются браузером намного раньше чем заложено.
Вот код добавления куки:
if (theme_click == "dark"){ // Проверяет какое значение получает theme_click
let date = new Date(Date.now()); // Получение сегодняшней даты
date.setFullYear(date.getFullYear + 12); // Прибавляет 12 лет к сроку годности куки
date = date.toUTCString(); // Переводит в нужный формат
document.cookie = "theme=lite; path=/; expires="+date; // Передаёт нужные куки, которые должны действовать 12 лет, но на деле ничего не работает. Таже передаёт theme=lite
// Дальше тоже самое, но если нету куки с name == theme или для lite и устанавливает dark
}else{
let date = new Date(Date.now());
date.setFullYear(date.getFullYear + 12);
date = date.toUTCString();
document.cookie = "theme=dark; path=/; expires="+date;
};
Подскажите, пожалуйста, почему они удаляются раньше времени? И как правильно написать расчёт даты, чтобы всё было хорошо??
PS: Сайт размещён на github.io, может потому удаляются куки?-_-
Ответы (1 шт):
Автор решения: vp_arth
→ Ссылка
date.getFullYear — функция, её нужно вызывать
let date = new Date();
date.setFullYear(date.getFullYear() + 12);
date = date.toGMTString();
// let new_theme = theme_click == "dark" ? "lite" : "dark";
// document.cookie = `theme=${new_theme}; path=/; expires=${date}`;
if (theme_click == "dark"){
document.cookie = "theme=lite; path=/; expires="+date;
}else{
document.cookie = "theme=dark; path=/; expires="+date;
};