Como posso obter uma data com o formato aaaa-mm-dd a partir de uma data ISO 8601 ?
Minha data 8601 é
2013-03-10T02:00:00Z
Como posso obter o seguinte?
2013-03-10
javascript
date
Neeraj
fonte
fonte
date.split("T")[0]
fariaRespostas:
Tente isto
Atualizar:-
Conforme indicado nos comentários, estou atualizando a resposta para imprimir zeros à esquerda para data e mês, se necessário.
fonte
Basta cortar a corda:
Ou se você precisar apenas de data fora da string.
fonte
YYYYY-MM-DD
no ano 10.000. Para evitar isso, você pode dividir noT
personagem em vez disso. (Consulte en.wikipedia.org/wiki/Year_10,000_problem )Você pode verificar Moment.js , Luxon , date-fns ou Day.js para uma boa manipulação de datas.
Ou apenas extraia a primeira parte de sua string ISO, ela já contém o que você deseja. Aqui está um exemplo dividindo em
T
:fonte
Moment.js cuidará da formatação de datas para você. Aqui está como incluí-lo por meio de uma tag JavaScript e, em seguida, um exemplo de como usar Moment.js para formatar uma data.
fonte
moment
é uma biblioteca bem grande para usar apenas para formatação. Em vez disso, use date-fns, que é muito menor em tamanho e oferece a mesma funcionalidade..toISODateString()
, porque é um caso muito frequente ...Isso é o que eu faço apenas para conseguir um encontro:
fonte
Moment.js é uma biblioteca bem grande para ser usada em um único caso de uso. Eu recomendo usar em seu
date-fns
lugar. Ele oferece basicamente a maioria das funcionalidades do Moment.js com um tamanho de pacote muito menor e muitosformatting options
.Uma coisa a notar é que, como é o formato de hora ISO 8601 , o navegador geralmente converte a hora UTC para o fuso horário local. Embora este seja um caso de uso simples, onde você provavelmente pode fazer
'2013-03-10T02:00:00Z'.substring(0, 10);
.Para conversões mais complexas
date-fns
é o caminho a percorrer.fonte
fonte
Usar:
fonte
Isso produzirá a data no formato AAAA-MM-DD:
fonte
Passe sua data no objeto data:
fonte
Para todos os que estão usando divisão, fatia e outras tentativas baseadas em string para obter a data, você pode se preparar para falhas relacionadas ao fuso horário!
Uma ISO-String tem Zulu-Timezone e uma data de acordo com este fuso horário, o que significa que pode usar uma data um dia anterior ou posterior ao fuso horário real, que você deve levar em consideração na sua cadeia de transformação.
Veja este exemplo:
fonte
Se você tiver um objeto de data:
ou
fonte
Para ampliar a solução de rk rk : Caso queira que o formato inclua a hora, você pode adicionar o
toTimeString()
à sua string e, em seguida, remover a parte GMT, da seguinte maneira:fonte
Eu usei este:
Fonte: http://gooplus.fr/en/2017/07/13/angular2-typescript-isodate-to-html-date/
fonte
fonte
fonte
Uma versão melhor da resposta de @Hozefa .
Se você
date-fns
instalou, você pode usar a função formatISOfonte
Use o código abaixo. É útil para você.
fonte