Obtengo exactamente el mismo objeto de momento después de ejecutar la zona (-1) que cuando no lo ejecuto. Ejemplo:
console.log (momento (). utc (). toDate ());
console.log (momento (). utc (). zone (-1) .toDate ());
Esperaría que esto ajustara el objeto Date de acuerdo con el desplazamiento de la zona horaria, pero lo hace ... bueno, nada.
Moment realiza un seguimiento de las instancias en el tiempo (es decir, milisegundos desde 1970 UTC). Lo que estás haciendo cuando dices utc()
o zone()
, estás cambiando la forma en que se _expresa_ esa hora (es decir, decimos "9:00" en EST pero "6:00" en PST , pero es la misma hora). Por lo tanto, volver a convertirlo en una fecha elimina los metadatos de "debería imprimir las fechas de manera diferente". Sigue siendo la misma hora.
¿Parece que quieres modificar la hora real? Sin embargo, no tenemos una función de "mutar la hora para que se muestre de la misma manera en esta otra zona", la hemos discutido (¿o nosotros, @ichernev?)
Sí, quiero modificar la hora real. Esto es bastante limitante y probablemente tendré que dejar de usar esta biblioteca debido a esta limitación.
@rquinlivan Cavé un poco más profundo. Puede pasar un segundo argumento a zone()
para que mantenga la misma hora del reloj de pared:
> moment().format()
'2014-09-15T16:59:30-04:00'
> moment().zone(-1).format()
'2014-09-15T21:59:35+01:00'
> moment().zone(-1, true).format()
'2014-09-15T16:59:38+01:00'
Entonces terminarás con:
> moment().toDate()
Mon Sep 15 2014 17:00:16 GMT-0400 (EDT)
> moment().zone(-1, true).toDate()
Mon Sep 15 2014 12:00:19 GMT-0400 (EDT)
Lo que creo que es lo que quieres.
FWIW, todos serán más rápidos para ayudarlo con el código abierto si se acerca a una brecha de funcionalidad con "oye, necesito esta función, ¿cómo puedo ayudar?" en lugar de como lo hizo usted.
Comentario más útil
@rquinlivan Cavé un poco más profundo. Puede pasar un segundo argumento a
zone()
para que mantenga la misma hora del reloj de pared:Entonces terminarás con:
Lo que creo que es lo que quieres.
FWIW, todos serán más rápidos para ayudarlo con el código abierto si se acerca a una brecha de funcionalidad con "oye, necesito esta función, ¿cómo puedo ayudar?" en lugar de como lo hizo usted.