Tengo problemas con la fecha de caducidad de localStorage en mi aplicación. Aquí está el problema:
Establecí una variable en el almacenamiento local cuando el usuario hace clic en un botón. Después de hacer clic en este botón, no quiero que se vuelva a mostrar después de la medianoche del día, por ejemplo, si hago clic en el botón a 20:00 , quiero que no se muestre durante 4 horas más.
Tengo esta función, activada por redux saga:
const setVarReservation = (key, value, ttl) => { window.localStorage.setItem('alertToBeSetted', moment().format('YYYY-MM-DD')); };Por lo tanto, mi variable tendrá clave: alertToBeSetted, valor: fecha de hoy.
Llamo a una saga cada vez que inicio sesión en la aplicación, así que puedo hacer la verificación fácilmente aquí. Lo que quiero lograr es esto:
const isVarClicked = window.localStorage.getItem('alertToBeSetted'); if (isVarClicked > midnightOfThisDay) { window.localStorage.removeItem(alertReservationVar); }¿Es posible lograr este momento de uso? Si no, ¿alguien puede mostrarme una solución válida?
Gracias por adelantado
Si establece como valor la fecha de hoy en el almacenamiento, creo que cuando le da un valor a isVarClicked , debe verificar si es igual a la fecha de hoy o no.
Prueba algo como esto:
// `isVariable` are usually used for boolean data. // so here you can assing a condition like this // to check if the button was pressed today const isVarClickedToday = localStorage.getItem('alertToBeSetted') === moment().format('YYYY-MM-DD'); if (isVarClickedToday) { // Hide Button } else { // Show Button if (localStorage.getItem('alertToBeSetted')) { // True with a date, false without a value stored. (for js implicit boolean conversion) // If the button wasn't clicked today, but we have something in the storage, we removing it (cause it's not about today) localStorage.removeItem('alertToBeSetted'); } }De esta manera, simplemente oculta el botón cuando la fecha coincide con la de hoy y muestra el botón y restablece el almacenamiento local (si está presente) cuando la fecha no coincide.
Espero que esto ayude :)