Eu obtenho exatamente o mesmo objeto de momento após executar a zona (-1), como faço quando não o executo. Exemplo:
console.log (moment (). utc (). toDate ());
console.log (moment (). utc (). zone (-1) .toDate ());
Eu esperaria que isso ajustasse o objeto Date de acordo com o deslocamento do fuso horário, mas ele ajusta ... bem, nada.
O Moment rastreia as instâncias no tempo (ou seja, milissegundos desde 1970 UTC). O que você está fazendo quando diz utc()
ou zone()
, você está mudando como essa hora é _expressa_ (ou seja, dizemos "9:00" em EST, mas "6:00" em PST , mas é ao mesmo tempo). Portanto, convertê-lo novamente em uma data elimina os metadados "você deve imprimir as datas de forma diferente". Ainda é a mesma hora.
Parece que você deseja modificar a hora real? Não temos um recurso "mude o tempo para que seja exibido da mesma forma nesta outra zona", no entanto, já o discutimos (ou não, @ichernev?)
Sim, desejo modificar a hora atual. Isso é bastante limitante e provavelmente terei que parar de usar esta biblioteca por causa dessa limitação.
@rquinlivan eu cavei um pouco mais fundo. Você pode passar um segundo argumento para zone()
para fazê-lo manter a mesma hora:
> 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'
Então você vai acabar com:
> 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)
O que eu acredito que é o que você quer.
FWIW, todos serão mais rápidos para ajudá-lo com o código aberto se você abordar uma lacuna de funcionalidade com "ei, preciso desse recurso, como posso ajudar?" ao invés de como você fez.
Comentários muito úteis
@rquinlivan eu cavei um pouco mais fundo. Você pode passar um segundo argumento para
zone()
para fazê-lo manter a mesma hora:Então você vai acabar com:
O que eu acredito que é o que você quer.
FWIW, todos serão mais rápidos para ajudá-lo com o código aberto se você abordar uma lacuna de funcionalidade com "ei, preciso desse recurso, como posso ajudar?" ao invés de como você fez.