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"
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.
Comentario más útil
Eso podría funcionar para usted entonces:
O
Si no le importa la zona horaria y solo desea mostrar la hora.