es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comparar la zona horaria del cliente con la zona horaria CET

Mi sitio web utiliza la zona horaria de mi servidor, que es CET.
Entonces, la marca de tiempo UNIX que siempre se analiza utilizando

new Date(timestamp * 1000)

se muestra en la zona horaria del servidor, y no del cliente.

Sin embargo, sé cómo hacer que el cliente vea la hora de su propia zona horaria.
Prefiero obtener la diferencia de su zona horaria con CET.

Entonces, los clientes, por ejemplo, de Irlanda mostrarán (-1 hora con respecto a CET) o (-3600 con respecto a CET), y así sucesivamente.
Para aclarar, no necesito ayuda para ver la hora en la zona horaria correcta del cliente, necesito ayuda para obtener la diferencia en horas o segundos del cliente con CET.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la diferencia en horas o segundos entre la zona horaria del cliente y CET, puedes utilizar la biblioteca Moment.js.

    Primero, necesitas obtener el desplazamiento de la zona horaria del cliente con respecto a UTC en minutos utilizando el método getTimezoneOffset() del objeto Date:

    const clientOffsetInMinutes = new Date().getTimezoneOffset();
    

    Esto te dará un valor en minutos, donde los valores positivos representan el tiempo detrás de UTC y los valores negativos representan el tiempo adelante de UTC.

    A continuación, puedes convertir esto a horas o segundos y restarlo del desplazamiento de CET (que es +1 hora o +3600 segundos por delante de UTC) para obtener la diferencia:

    const clientOffsetInHours = clientOffsetInMinutes / 60;
    const diffInHours = 1 - clientOffsetInHours;
    
    // O, para obtener la diferencia en segundos:
    const clientOffsetInSeconds = clientOffsetInMinutes * 60;
    const diffInSeconds = 3600 - clientOffsetInSeconds;
    

    Ten en cuenta que esto te dará la diferencia entre la zona horaria del cliente y CET en el momento actual. Si necesitas calcular la diferencia para una fecha y hora específica, deberás utilizar Moment.js para crear un objeto moment para esa fecha y hora y luego utilizar el método utcOffset() para obtener el desplazamiento en minutos, igual que hicimos con getTimezoneOffset().

Comments are closed.