Ejecutando el siguiente código en Chrome Versión 49.0.2623.110 m
¿Quizás relacionado con # 2982?
Debido a que está utilizando la función moment()
para construir su fecha, moment asume que está manejando una fecha local. Por lo tanto, la función .startOf()
lo está moviendo al inicio de su fecha local.
Sin embargo, .toISOString()
genera una fecha UTC, como lo indica la Z al final de las cadenas.
Según tu perfil de github, parece que estás en Israel. Entonces, ajustando la zona horaria de Asia/Jerusalén y poniéndolo todo en código:
//the time now in Jerusalem
moment().format()
"2016-04-03T14:48:10+03:00"
//start of day in Jersualem
moment().startOf('day').format()
"2016-04-03T00:00:00+03:00"
//start of day as ISO string is three hours before start of day in Jerusalem
moment().startOf('day').toISOString()
"2016-04-02T21:00:00.000Z"
Debe trabajar completamente en hora local y usar .format()
para obtener el resultado que desea, o trabajar completamente en UTC.
Esta sección de los documentos podría ser útil:
http://momentjs.com/guides/#/parsing/local-utc-zone/
:cara-palma:
Gracias por la completa explicación.
Creo que en realidad he explicado esto al menos dos veces esta semana entre aquí y Stack Overflow. No eres la única persona que está confundida. Voy a actualizar los documentos para que la parte UTC sea un poco más clara.
Comentario más útil
Debido a que está utilizando la función
moment()
para construir su fecha, moment asume que está manejando una fecha local. Por lo tanto, la función.startOf()
lo está moviendo al inicio de su fecha local.Sin embargo,
.toISOString()
genera una fecha UTC, como lo indica la Z al final de las cadenas.Según tu perfil de github, parece que estás en Israel. Entonces, ajustando la zona horaria de Asia/Jerusalén y poniéndolo todo en código:
Debe trabajar completamente en hora local y usar
.format()
para obtener el resultado que desea, o trabajar completamente en UTC.Esta sección de los documentos podría ser útil:
http://momentjs.com/guides/#/parsing/local-utc-zone/