Este documento é mencionado moment.ISO_8601
como uma opção de formatação (de 2.7.0 - http://momentjs.com/docs/#/parsing/special-formats/ ), mas nenhum deles funciona (mesmo 2.7.0):
var date = moment();
date.format(moment.ISO_8601); // error
moment.format(date, moment.ISO_8601); // error
( http://jsfiddle.net/b3d6uy05/1/ )
Como posso obter uma ISO 8601 do moment.js?
javascript
momentjs
date-formatting
iso8601
Sennett
fonte
fonte
moment().toISOString()
Respostas:
http://momentjs.com/docs/#/displaying/as-iso-string/
Atualização Com base na resposta: por @sennet e no comentário por @dvlsg (consulte o Fiddle ), deve-se notar que há uma diferença entre
format
etoISOString
. Ambos estão corretos, mas o processo subjacente é diferente.toISOString
converte em um objeto Date, define para UTC e usa a função protótipo Date nativa para gerar ISO8601 no UTC com milissegundos (YYYY-MM-DD[T]HH:mm:ss.SSS[Z]
). Por outro lado,format
usa o formato padrão (YYYY-MM-DDTHH:mm:ssZ
) sem milissegundos e mantém o deslocamento do fuso horário.Abri um problema, pois acho que ele pode levar a resultados inesperados.
fonte
moment().utc().format("OUTPUT_FORMAT")
moment().toISOString(true);
.Use
format
sem parâmetros:( http://jsfiddle.net/8gvhL1dz/ )
fonte
date.toISOString()
manterá os milissegundos e usará utc,date.format()
diminuirá os milissegundos e usará o fuso horário local (ou pelo menos, esse é o comportamento que estou recebendo no chrome - jsfiddle.net/8gvhL1dz/22 )Também é possível com o vanilla JS
fonte
Ao usar o Mongoose para armazenar datas no MongoDB, você precisa usar toISOString () porque todas as datas são armazenadas como datas ISO com milissegundos.
fonte
Se você deseja apenas a parte da data (por exemplo, 27/06/2017) e deseja que ela funcione independentemente do fuso horário e também em árabe, aqui está o código que escrevi:
fonte
fonte