Estaba tratando de usar el tiempo del calendario para formatear mis fechas pasando una función de devolución de llamada. Sin embargo, en la condición else de mi devolución de llamada, el mes de la fecha formateada es incorrecto.
Jan
devuelto como Jamn
Mar
devuelto como 3amr
Feb
devuelto como F0b
Puede que esté haciendo esto mal, pero parece extraño que el mes regrese de esta manera sin arrojar ningún error.
Código para reproducir
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');
}
}
});
}
Ambiente
Mar 28 de marzo de 2017 16:52:21 GMT-0400 (EDT)
28/3/2017 4:52:21 p.m.
240
Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 56.0.2924.87 Safari / 537.36
2.17.1
no importa, estaba devolviendo el valor incorrecto.
@dbshwang estoy teniendo el mismo problema. ¿Puedes poner tu resolución?
@ avi-meslati-sp Solo debe devolver la cadena para formatear, no la fecha formateada real. Entonces en mi caso:
sameElse: function(now) {
if (this.isSame(now, 'year')) {
return this.format('MMM D');
} else {
return this.format('MMM D, YYYY');
}
}
debería ser realmente
sameElse: function(now) {
if (this.isSame(now, 'year')) {
return 'MMM D';
} else {
return 'MMM D, YYYY';
}
}
Comentario más útil
no importa, estaba devolviendo el valor incorrecto.