<p>moment (). toISOString () error, si pasa en un 18, devuelve el 17</p>

Creado en 23 jul. 2013  ·  6Comentarios  ·  Fuente: moment/moment

Este problema parece ser causado por moment (). ToISOString () introducido aquí:

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

Podría, pero en la consola si lo hago:

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

Regresará:

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

Ahora, si llamo a toISOString ( ) en él, la fecha de repente se convierte en 17:

  n.toISOString()

lo anterior devolverá el 17 en lugar del 18:

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

Comentario más útil

Eso podría funcionar para usted entonces:

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

O

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

Si no le importa la zona horaria y solo desea mostrar la hora.

Todos 6 comentarios

Como puede ver, toISOString siempre muestra la hora en UTC (además de mostrarla de una manera específica).

@ichernev , ¿no entiendo completamente tu punto? ¿Mostrar de formas específicas significa que cuando pase en el puesto 17, debería obtener el 18? ¿Cómo paso en el 18 y regreso al 18? Gracias.

Eso podría funcionar para usted entonces:

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

O

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

Si no le importa la zona horaria y solo desea mostrar la hora.

@ichernev , muchas gracias.

Puede usar el parámetro keepOffset de toISOString:

toISOString (keepOffset ?: boolean): cadena;

=>

momento (). toISOString (verdadero)

¿Es esto realmente correcto?

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

salidas:

1969-12-31T23:00:00.000Z

Creo que la mayoría de las personas que pasan de una fecha específica a un momento y lo formatean como toISOString esperarían que la fecha no cambie. ¿Por qué no mantieneOffset predeterminado en verdadero si hace que la función se comporte de una manera más predecible?

Sé que el momento está siendo consistente con la función nativa de JavaScript Date toISOString según ES2015, pero aun así, esto no parece el comportamiento esperado.

¿Fue útil esta página
0 / 5 - 0 calificaciones