J'essayais d'utiliser l'heure du calendrier pour formater mes dates en passant une fonction de rappel. Cependant, dans la condition else de mon rappel, le mois de la date formatée est incorrect.
Jan
renvoyé sous la forme Jamn
Mar
renvoyé sous la forme 3amr
Feb
retourné comme F0b
Je fais peut-être mal, mais il semble étrange que le mois revienne de cette façon sans générer d'erreurs.
Code à reproduire
export const dateConversion = (date) => {
// Assuming date comes in 'YYYY-MM-DD` format
date = moment(date, 'YYYY-MM-DD');
return date.calendar(null, {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
lastDay: '[Yesterday]',
nextWeek: 'ddd',
lastWeek: 'MMM D',
sameElse: function(now) {
if (this.isSame(now, 'year')) {
return this.format('MMM D');
} else {
// Month is incorrectly parsed here
return this.format('MMM D, YYYY');
}
}
});
}
Environnement
Mar 28 mars 2017 16:52:21 GMT-0400 (HAE)
28/03/2017, 16:52:21
240
Mozilla/5.0 (Macintosh ; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/56.0.2924.87 Safari/537.36
2.17.1
peu importe - renvoyait la mauvaise valeur.
@dbshwang j'ai le même problème. pouvez-vous s'il vous plaît mettre votre résolution
@avi-meslati-sp Vous ne devriez renvoyer que la chaîne pour le formatage - pas la date formatée réelle. Donc dans mon cas :
sameElse: function(now) {
if (this.isSame(now, 'year')) {
return this.format('MMM D');
} else {
return this.format('MMM D, YYYY');
}
}
devrait en fait être
sameElse: function(now) {
if (this.isSame(now, 'year')) {
return 'MMM D';
} else {
return 'MMM D, YYYY';
}
}
Commentaire le plus utile
peu importe - renvoyait la mauvaise valeur.