> Faqs > Detectar la zona horaria del usuario con Javascript

Detectar la zona horaria del usuario con Javascript

Necesito detectar la zona horaria que tiene el usuario que está visitando el sitio, es decir, el cliente.

Me refiero al nombre de su "timezone", que sería algo como esto:

Europe/Madrid
America/New_York

El timezone lo necesito obtener en el cliente, mediante programación Javascript.

Respuestas

Las zonas horarias de los usuarios se pueden detectar con Javascript usando el API Intl. Este API Javascript tiene muchas utilidades, algunas de ellas que no están todavía muy soportadas por los navegadores. Pero en lo que respecta al tema de cálculos de zonas horarias, todos los navegadores tienen soporte, inclusive los antiguos Internet Explorer 11.

Encuentras documentación de la parte del API que debes usar en este enlace de MDN: Intl.DateTimeFormat

En tu caso tienes que ejecutar esto:

var resolvedOptions = Intl.DateTimeFormat().resolvedOptions()

Este código define un objeto resolvedOptions donde encuentras una cantidad enorme de datos sobre la configuración del usuario en lo que respecta a las horas del sistema, usos, zonas, tipo de calendario, etc. Los timezones los puedes obtener mediante la propiedad "timeZone".

var resolvedOptions = Intl.DateTimeFormat().resolvedOptions()
console.log('El nombre de tu zona horaria es ', resolvedOptions.timeZone);

Con ese código consigues ver en la consola de Javascript el nombre de la IANA time zone, es decir, el texto como "Europe/Madrid", o el que corresponda para el usuario que te está visitando.

Alba
355 9 25 13