ngx moment examples javascript momentjs angular-moment

javascript - examples - Obtenga la zona horaria desde el navegador de los usuarios usando moment(timezone).js



moment.js examples (4)

¿Cuál es la mejor manera de obtener la zona horaria del cliente y convertirla en otra zona horaria cuando se utiliza moment.js y moment-timezone.js?

Quiero averiguar qué es la zona horaria de los clientes y luego convertir su fecha y hora en otra zona horaria.

¿Alguien tiene experiencia con esto?


Cuando se usa moment.js , moment(date).utcOffset() devuelve la diferencia de tiempo en minutos entre la hora del navegador y la UTC en la fecha pasada como argumento (o hoy, si no se pasa la fecha).
NO establezca esta diferencia en una variable y úsela para la fecha elegida:

// this is WRONG! don''t do it like this! const OFFSET_UTC = moment().utcOffset();

Lo anterior aplicará la diferencia actual a todas las fechas con las que trabaja y si se encuentra en una zona de ahorro de luz diurna, sus fechas estarán desactivadas en una hora si están en la otra mitad del año.

Aquí hay una función para analizar el desplazamiento correcto en la fecha elegida:

function getUtcOffset(date) { return moment(date) .add( moment(date).utcOffset(), ''minutes'') .utc() }


Cuando use moment.js, use:

var tz = moment.tz.guess();

Devolverá un identificador de zona horaria de la IANA, como America/Los_Angeles para la zona horaria del Pacífico estadounidense.

Está documentado aquí .


También puede obtener su tiempo deseado utilizando el siguiente código JS:

new Date(`${post.data.created_at} GMT+0200`)

En este ejemplo, mis fechas recibidas estaban en GMT + 0200 zona horaria. En lugar de eso puede ser cada zona horaria. Y los datos devueltos serán la fecha en su zona horaria. Espero que esto ayude a cualquiera a ahorrar tiempo.


var timedifference = new Date (). getTimezoneOffset ();

Esto devuelve la diferencia de la zona horaria de los clientes desde la hora UTC. Luego puedes jugar con él como quieras.