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()
?
day
fonctionne 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.js
bibliothè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.000Z
il en résultera alors 1993-06-07
que c'est le début de la journée de1993-06-08