Comparar fechas en UTC (defecto en MariaDB) y obtener los segundos de diferencia con React Native (también sirve para React o JavaScript general)

Tiempo de lectura: < 1 minuto

Hoy os traigo un pequeño script para vuestras aplicaciones móviles qué permitirá comparar dos fechas en formato UTC en React Native, React o JavaScript Vanila y obtener los segundos de diferencia.

Almendro en flor

El código obtiene una fecha que llega en formato UTC desde la base de datos. A veces no incluye la Z al final, se debe añadir para indicar que la fecha es formato UTC.

Al restar ambas fechas y una de ellas ser formato UTC, trata a las dos cómo UTC y las resta independientemente del USO horario qué tenga el dispositivo.

export function restarTiempo(fecha: string) {
    // Si la fecha no tiene zona horaria, agregamos "Z" al final para forzar UTC
    const fechaServidor = fecha.includes('Z') ? fecha : `${fecha}Z`;

    // Obtener la fecha actual en UTC
    let fechaActualUTC = new Date();
    console.log('fechaActual UTC', fechaActualUTC);

    // Crear un objeto Date con la fecha proporcionada en UTC
    const fechaRestar = new Date(fechaServidor);
    console.log('fechaRestar', fechaRestar);

    // Calcular la diferencia en milisegundos entre las dos fechas
    const diferencia = fechaRestar.getTime() - fechaActualUTC.getTime();
    console.log('diferencia', diferencia);

    // Convertir la diferencia a segundos y asegurarse de que no sea negativa
    let segundos = Math.floor(diferencia / 1000);
    if (segundos < 0) {
        segundos = 0;
    }

    return segundos;
}

Deja un comentario