Me gustaría comprobar si el valor es de 10 o más minutos a partir de ahora.
let now = new Date().getTime(); let TEN_MINUTES = new Date().getTime() + 600000; let val = '2022-01-14 12:27:05+00:00' if(val > TEN_MINUTES){ console.log('true') }val es una cadena que no está en blanco, por lo que val > tenMinsPlus no tiene ningún sentido, ya que tenMinsPlus es un valor booleano.
Si desea saber si val es más de diez minutos a partir de ahora, debe obtener un valor similar a una fecha para val y un valor similar a una fecha para diez minutos a partir de ahora, y compararlos.
Estás obteniendo TEN_MINUTES correctamente:
let TEN_MINUTES = new Date().getTime() + 600000;aunque puedes hacerlo de manera más concisa:
let TEN_MINUTES = Date.now() + 600000;Ambos nos dan una cantidad de milisegundos desde The Epoch (1 de enero de 1970 a la medianoche UTC) para "ahora" más diez minutos.
Ahora vamos a hacer la fecha. Su cadena está casi en un formato válido para que el objeto Date la analice. Solo necesita el espacio después de que la fecha cambie a una T , luego podemos usar Date.parse para analizarlo y darnos la cantidad de milisegundos desde The Epoch:
let then = Date.parse(val.replace(" ", "T")); Luego vemos si then es mayor que TEN_MINUTES :
if (then > TEN_MINUTES) { // Yes, it's more than ten minutes from now } else { // No, it isn't }Ejemplo en vivo:
function moreThan10Minutes(val) { let TEN_MINUTES = Date.now() + 600000; let then = Date.parse(val.replace(" ", "T")); return then > TEN_MINUTES; } function test(val) { const result = moreThan10Minutes(val); if (result) { console.log(`Yes, ${val} is more than 10 minutes from now`); } else { console.log(`No, ${val} is not more than 10 minutes from now`); } } test("2022-01-14 12:27:05+00:00"); test(new Date(Date.now() + 700000).toISOString());