const cookieButton = document.getElementById('store-cookie') cookieButton.addEventListener('click', e => { const input = document.getElementById('fav-cookie').value let date = new Date() let minutes = 30; date.setTime(date.getTime() + (minutes * 60 * 1000)) document.cookie = `favCookie=${input}; expires=${date.toTimeString()};` }) Estoy trabajando en un problema de codificación destinado a usarse solo en javaScript. Requiere hacer una cookie con el valor de un campo de entrada (en un html vinculado), al presionar un botón. La bonificación para esta pregunta requiere que la cookie caduque después de 30 minutos de su creación. Actualmente, este código solo está guardando favCookie=input; pero no está agregando una fecha de vencimiento. ¡Cualquier ayuda sería apreciada!
Puede crear 2 variables de fecha, en la segunda, use el método setMinutes para agregar 30 minutos a la hora actual y luego cree una función para borrar/cambiar el valor si la fecha/hora actual es igual a la nueva fecha.
var expire = new Date(); expire.setMinutes( expire.getMinutes() + 30 );Utilice toUTCString() en su lugar.
const cookieButton = document.getElementById('store-cookie'); cookieButton.addEventListener('click', e => { const input = document.getElementById('fav-cookie').value; const date = new Date(); date.setTime(date.getTime() + (30* 60 * 1000)); document.cookie = `favCookie=${input}; expires=${date.toUTCString()};`; });Las cookies siempre son engañosas. Creo que es porque su marca de tiempo debe formatearse así:
2021-10-23T20:32:38.000Z
En su lugar, actualmente lo ha establecido por toTimeString()
22:29:12 GMT+0200 (Central European Summer Time)