Réponses:
Désolé de sauter si tard, mais si vous souhaitez supprimer la partie temporelle d'un moment()plutôt que de le formater , le code est:
.startOf('day')
startOf('day'), ce qui était alors le début de la journée précédente . Corrigé avecmoment(moment.utc('2013-10-29T00:00:00+00:00').startOf('day').format('LL')).startOf('day').toDate()
.startOf('day')ne supprime pas la partie de temps en soi, il définit simplement l'heure à 00:00:00. Donc, oui, comme l'a commenté «collin», vous devez être prudent lors de la sauvegarde de la date. Une meilleure alternative utilise format('LL'), comme cela a été répondu dans ce fil.
someMoment.clone().startOf('day')ou moment(someMoment).startOf('day').
moment().utc().add(1,'d').startOf('day')réinitialisera l'objet à aujourd'hui.
format('LL')Selon ce que vous essayez d'en faire, cela format('LL')pourrait faire l'affaire. Cela produit quelque chose comme ceci:
Moment().format('LL'); // => April 29, 2016
La bonne façon serait de spécifier l'entrée selon vos besoins, ce qui vous donnera plus de flexibilité.
La présente définition comprend les éléments suivants
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'
Vous pouvez utiliser n'importe lequel de ces éléments ou modifier l'entrée passée dans moment (). Format (). Par exemple, pour votre cas, vous pouvez passer moment.utc(dateTime).format('MMMM D, YYYY').
Vous pouvez également utiliser ce format:
moment().format('ddd, ll'); // Wed, Jan 4, 2017
Avec les nouvelles versions de moment.js, vous pouvez également faire ceci:
var dateTime = moment();
var dateValue = moment({
year: dateTime.year(),
month: dateTime.month(),
day: dateTime.date()
});
date: dateTime.date()au lieu de day: dateTime.date()?
dayfonctionne avant la version 2.8.4.
D'accord, donc je sais que je suis en retard à la fête. Comme 6 ans de retard, mais c'était quelque chose que j'avais besoin de comprendre et de le mettre en forme AAAA-MM-JJ.
moment().format(moment.HTML5_FMT.DATE); // 2019-11-08
Vous pouvez également passer un paramètre tel que , 2019-11-08T17:44:56.144.
moment("2019-11-08T17:44:56.144").format(moment.HTML5_FMT.DATE); // 2019-11-08
Chaque fois que j'utilise la moment.jsbibliothèque, je spécifie le format souhaité de cette façon:
moment(<your Date goes here>).format("DD-MMM-YYYY")
ou
moment(<your Date goes here>).format("DD/MMM/YYYY")
... etc j'espère que vous avez l'idée
Dans la fonction de formatage, vous mettez le format souhaité. L'exemple ci-dessus supprimera tous les éléments indésirables de la date tels que les minutes et les secondes
L, LL, etc.)
Pour les gens comme moi qui veulent le format de date longue ( LLLL) mais sans l'heure, il y a un problème GitHub pour cela: https://github.com/moment/moment/issues/2505 . Pour l'instant, il existe une solution:
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);
Vous pouvez utiliser ce constructeur
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})m'aurait donné le 1er janvier 1970 plutôt qu'aujourd'hui.
moment({ h: 0 })la même chose.
Omitted units default to 0 or the current date, month, and year.
Essaye ça:
moment.format().split("T")[0]
1993-06-07T22:00:00.000Zil en résultera alors 1993-06-07que c'est le début de la journée de1993-06-08