Moment: startOf('day') está me dando ontem

Criado em 3 abr. 2016  ·  3Comentários  ·  Fonte: moment/moment

Executando o seguinte código no Chrome versão 49.0.2623.110 m
image
Talvez relacionado a #2982?

Comentários muito úteis

Como você está usando a função moment() para construir sua data, moment assume que você está lidando com uma data local. Assim, a função .startOf() está movendo você para o início de sua data local.
.toISOString() , porém, gera uma data UTC, conforme indicado pelo Z no final das strings.

Com base no seu perfil do github, parece que você está em Israel. Então, ajustando o fuso horário da Ásia/Jerusalém e colocando tudo em 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"

Você precisa trabalhar totalmente em horário local e usar .format() para obter o resultado desejado ou trabalhar totalmente em UTC.

Esta seção dos documentos pode ser útil:
http://momentjs.com/guides/#/parsing/local -utc-zone/

Todos 3 comentários

Como você está usando a função moment() para construir sua data, moment assume que você está lidando com uma data local. Assim, a função .startOf() está movendo você para o início de sua data local.
.toISOString() , porém, gera uma data UTC, conforme indicado pelo Z no final das strings.

Com base no seu perfil do github, parece que você está em Israel. Então, ajustando o fuso horário da Ásia/Jerusalém e colocando tudo em 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"

Você precisa trabalhar totalmente em horário local e usar .format() para obter o resultado desejado ou trabalhar totalmente em UTC.

Esta seção dos documentos pode ser útil:
http://momentjs.com/guides/#/parsing/local -utc-zone/

:face-palm:

Obrigado pela explicação detalhada.

Acho que já expliquei isso pelo menos duas vezes esta semana entre aqui e o Stack Overflow. Você não é a única pessoa a ser confundida. Vou atualizar os documentos para deixar a parte UTC um pouco mais clara.

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

Questões relacionadas

slavafomin picture slavafomin  ·  3Comentários

chitgoks picture chitgoks  ·  3Comentários

BonBonSlick picture BonBonSlick  ·  3Comentários

dogukankotan picture dogukankotan  ·  3Comentários

tanepiper picture tanepiper  ·  3Comentários