Estoy tratando de ejecutar un código si una fecha (de una cookie) tiene más de 2 días. Más o menos, no tiene que ser preciso.
El valor de la cookie es: 2022-06-27T23:28:02.816Z
function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); }Usando :
getCookie(name) and : .slice(0, 10);Devoluciones: 2022-06-27 Por lo tanto, ahora tengo un valor AAAA-MM-DD
var stuff_cookiename = getCookie("cookiename").slice(0, 10);Convirtiendo a un formato de fecha:
var t_date_refuscmp_todate = Date.parse(stuff_cookiename);Ahora tengo algo como esto: 1656288000000
Ahora quiero comparar la fecha de AHORA - 2 días Así que lo hago:
var t_date_verif = new Date(); var t_date_verif_format = tc_date_verif.setDate(tc_date_verif.getDate() - 2);Lo que me trae algo como: 1656199936800
=====================
Pero si comparo mi cookiedate con la fecha de hoy -2 días, no siempre parece funcionar correctamente.
t_date_refuscmp_todate < t_date_verif_format !!!¿Alguna idea de lo que no estoy haciendo bien? Tal vez hay algo mucho más fácil de hacer :)
Gracias !
Ocurrencia
Analice la cookie y la fecha y hora actual, conviértala en epoch ms y calcule la diferencia en días.
Código
let s_dtCookie = "2022-06-27T23:28:02.816Z" , n_epochCookie = (new Date(s_dtCookie)).getTime() , n_epochNow = (new Date()).getTime() , n_deltaDays = (n_epochNow - n_epochCookie) / (24 * 3600 * 1000) ; console.log(`Cookie time '${s_dtCookie}' is ${n_deltaDays} days in the past.`);Referencia
Documentos de MDN JS, sección Date.getTime() .
^ Una respuesta más específica (a su pregunta) y más simple en mi opinión
var diff = Date.now() - new Date("2022-06-25T23:28:02.816Z"); if(diff <= 1000 * 60 * 60 * 24 * 2){ console.log("less than 2 days old"); }else{ console.log("more than 2 days old"); }