По какой причине удаляются куки раньше чем задано?

Вчера задавал вот это вопрос и заметил что куки удаляются браузером намного раньше чем заложено.

Вот код добавления куки:

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;
};
→ Ссылка