<p>bug moment (). toISOString (), se você passar um 18º, ele retornará 17º</p>

Criado em 23 jul. 2013  ·  6Comentários  ·  Fonte: moment/moment

Este problema parece ser causado por moment (). ToISOString () apresentado aqui:

http://momentjs.com/docs/#/displaying/as -iso-string /
momento (). toISOString ();

Eu poderia, mas no console se eu fizer:

    n = moment.utc(new Date('2013-07-18T00:00:00+01:00'))

Ele retornará:

 Thu Jul 18 2013 00:00:00 GMT+0100 (GMT Daylight Time)

Agora, se eu chamar toISOString ( ) nele, a data repentinamente torna-se 17:

  n.toISOString()

o anterior retornará o dia 17 em vez de 18:

  "2013-07-17T23:00:00.000Z"

Comentários muito úteis

Isso pode funcionar para você então:

> moment().format('YYYY-MM-DD[T]HH:mm:ss.SSSZZ')
'2013-07-23T14:54:20.176-0700'

Ou

> moment().format('YYYY-MM-DD[T]HH:mm:ss.SSS')
'2013-07-23T14:54:20.176'

Se você não se importa com o fuso horário e só deseja exibir a hora.

Todos 6 comentários

Como você pode ver, toISOString sempre exibe a hora em UTC (além de exibi-la de uma forma específica).

@ichernev , não entendi totalmente o seu ponto? Exibir de maneiras específicas significa que quando eu passar em 17º, devo chegar em 18º? Como passo em 18º e volto em 18º? obrigado.

Isso pode funcionar para você então:

> moment().format('YYYY-MM-DD[T]HH:mm:ss.SSSZZ')
'2013-07-23T14:54:20.176-0700'

Ou

> moment().format('YYYY-MM-DD[T]HH:mm:ss.SSS')
'2013-07-23T14:54:20.176'

Se você não se importa com o fuso horário e só deseja exibir a hora.

@ichernev , muito obrigado.

Você pode usar o parâmetro keepOffset de toISOString:

toISOString (keepOffset ?: boolean): string;

=>

momento (). toISOString (verdadeiro)

Isso está realmente certo?

moment('1970-01-01').toISOString()

saídas:

1969-12-31T23:00:00.000Z

Eu acho que a maioria das pessoas passando em uma data específica para um momento e formatando-o como um toISOString esperaria que a data não mudasse. Por que o padrão keepOffset não é verdadeiro se isso faz com que a função se comporte de maneira mais previsível?

Eu sei que alguns momentos estão sendo consistentes com a função nativa do JavaScript Date toISOString de acordo com ES2015, mas mesmo assim isso não parece um comportamento esperado.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

vbullinger picture vbullinger  ·  3Comentários

dogukankotan picture dogukankotan  ·  3Comentários

Delgan picture Delgan  ·  3Comentários

RobinvanderVliet picture RobinvanderVliet  ·  3Comentários

M-Zuber picture M-Zuber  ·  3Comentários