Respostas:
Desculpe entrar tão tarde, mas se você deseja remover a parte do tempo de um em moment()
vez de formatá- lo, o código é:
.startOf('day')
startOf('day')
, aplicando , que era o início do dia anterior . Corrigido commoment(moment.utc('2013-10-29T00:00:00+00:00').startOf('day').format('LL')).startOf('day').toDate()
.startOf('day')
não remove a parte da hora em si, apenas define a hora para 00:00:00. Então, sim, como comentado por 'collin', você deve ter cuidado ao salvar a data. Melhor alternativa está usando format('LL')
, como já foi respondido neste tópico.
someMoment.clone().startOf('day')
ou moment(someMoment).startOf('day')
.
moment().utc().add(1,'d').startOf('day')
redefinirá o objeto para hoje.
format('LL')
Dependendo do que você está tentando fazer, format('LL')
pode fazer o truque. Produz algo como isto:
Moment().format('LL'); // => April 29, 2016
A maneira correta seria especificar a entrada conforme sua exigência, o que lhe dará mais flexibilidade.
A presente definição inclui os seguintes
LTS : 'h:mm:ss A',
LT : 'h:mm A',
L : 'MM/DD/YYYY',
LL : 'MMMM D, YYYY',
LLL : 'MMMM D, YYYY h:mm A',
LLLL : 'dddd, MMMM D, YYYY h:mm A'
Você pode usar qualquer uma dessas opções ou alterar a entrada passada para moment (). Format (). Por exemplo, para o seu caso, você pode passar moment.utc(dateTime).format('MMMM D, YYYY')
.
Você também pode usar este formato:
moment().format('ddd, ll'); // Wed, Jan 4, 2017
Com as versões mais recentes do moment.js, você também pode fazer isso:
var dateTime = moment();
var dateValue = moment({
year: dateTime.year(),
month: dateTime.month(),
day: dateTime.date()
});
Consulte: http://momentjs.com/docs/#/parsing/object/ .
date: dateTime.date()
vez de day: dateTime.date()
?
day
funciona pré versão 2.8.4.
Ok, então eu sei que estou muito atrasado para a festa. Como seis anos atrasado, mas isso era algo que eu precisava descobrir e formatá-lo AAAA-MM-DD.
moment().format(moment.HTML5_FMT.DATE); // 2019-11-08
Você também pode passar um parâmetro como 2019-11-08T17:44:56.144
,.
moment("2019-11-08T17:44:56.144").format(moment.HTML5_FMT.DATE); // 2019-11-08
Sempre que uso a moment.js
biblioteca, especifique o formato desejado da seguinte maneira:
moment(<your Date goes here>).format("DD-MMM-YYYY")
ou
moment(<your Date goes here>).format("DD/MMM/YYYY")
... etc Espero que você entenda
Dentro da função de formato, você coloca o formato desejado. O exemplo acima eliminará todos os elementos indesejados da data, como minutos e segundos
L
, LL
, etc.)
Para pessoas como eu, querem o formato de data longa ( LLLL
), mas sem a hora do dia, existe um problema no GitHub: https://github.com/moment/moment/issues/2505 . Por enquanto, há uma solução alternativa:
var localeData = moment.localeData( moment.locale() ),
llll = localeData.longDateFormat( 'llll' ),
lll = localeData.longDateFormat( 'lll' ),
ll = localeData.longDateFormat( 'll' ),
longDateFormat = llll.replace( lll.replace( ll, '' ), '' );
var formattedDate = myMoment.format(longDateFormat);
Você pode usar este construtor
moment({h:0, m:0, s:0, ms:0})
http://momentjs.com/docs/#/parsing/object/
console.log( moment().format('YYYY-MM-DD HH:mm:ss') )
console.log( moment({h:0, m:0, s:0, ms:0}).format('YYYY-MM-DD HH:mm:ss') )
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
moment({h:0, m:0, s:0, ms:0})
isso me daria 1 de janeiro de 1970 em vez de hoje.
moment({ h: 0 })
faz o mesmo.
Omitted units default to 0 or the current date, month, and year.
Tente o seguinte:
moment.format().split("T")[0]
1993-06-07T22:00:00.000Z
resultará como 1993-06-07
se fosse o início do dia de1993-06-08