Risposte:
Mi dispiace saltare così tardi, ma se si desidera rimuovere la parte di tempo moment()
piuttosto che formattarla , il codice è:
.startOf('day')
startOf('day')
, che era quindi l'inizio del giorno precedente . Risolto conmoment(moment.utc('2013-10-29T00:00:00+00:00').startOf('day').format('LL')).startOf('day').toDate()
.startOf('day')
non rimuove la parte temporale di per sé, imposta semplicemente l'ora su 00:00:00. Quindi, sì, come commentato da 'collin', devi stare attento quando salvi la data. Si sta usando un'alternativa migliore format('LL')
, come è stato risposto in questo thread.
someMoment.clone().startOf('day')
o moment(someMoment).startOf('day')
.
moment().utc().add(1,'d').startOf('day')
ripristinerà l'oggetto a oggi.
format('LL')
A seconda di cosa stai cercando di fare con esso, format('LL')
potrebbe fare il trucco. Produce qualcosa del genere:
Moment().format('LL'); // => April 29, 2016
Il modo corretto sarebbe quello di specificare l'input secondo il vostro requisito che vi darà maggiore flessibilità.
La presente definizione include quanto segue
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'
È possibile utilizzare uno di questi o modificare l'input passato in moment (). Format (). Ad esempio, per il tuo caso puoi passare moment.utc(dateTime).format('MMMM D, YYYY')
.
Puoi anche usare questo formato:
moment().format('ddd, ll'); // Wed, Jan 4, 2017
Con le versioni più recenti di moment.js puoi anche fare questo:
var dateTime = moment();
var dateValue = moment({
year: dateTime.year(),
month: dateTime.month(),
day: dateTime.date()
});
date: dateTime.date()
invece day: dateTime.date()
?
day
funziona prima della versione 2.8.4.
Ok, quindi so che sono in ritardo alla festa. Come 6 anni di ritardo, ma questo era qualcosa che dovevo capire e che fosse formattato AAAA-MM-GG.
moment().format(moment.HTML5_FMT.DATE); // 2019-11-08
È inoltre possibile passare in un parametro come, 2019-11-08T17:44:56.144
.
moment("2019-11-08T17:44:56.144").format(moment.HTML5_FMT.DATE); // 2019-11-08
Ogni volta che utilizzo la moment.js
libreria, specifico il formato desiderato in questo modo:
moment(<your Date goes here>).format("DD-MMM-YYYY")
o
moment(<your Date goes here>).format("DD/MMM/YYYY")
... ecc. Spero che tu abbia avuto l'idea
All'interno della funzione di formattazione, inserisci il formato desiderato. L'esempio sopra eliminerà tutti gli elementi indesiderati dalla data come minuti e secondi
L
, LL
, ecc)
Per le persone come me vogliono il formato della data lunga ( LLLL
) ma senza l'ora del giorno, c'è un problema di GitHub per questo: https://github.com/moment/moment/issues/2505 . Per ora, c'è una soluzione 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);
Puoi usare questo costruttore
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})
mi avrebbe dato il 1 gennaio 1970 anziché oggi.
moment({ h: 0 })
fare lo stesso.
Omitted units default to 0 or the current date, month, and year.
Prova questo:
moment.format().split("T")[0]
1993-06-07T22:00:00.000Z
risulterà come 1993-06-07
se fosse l'inizio della giornata di1993-06-08