Saya mencoba menggunakan waktu kalender untuk memformat tanggal saya dengan melewatkan fungsi panggilan balik. Namun, dalam kondisi lain dari panggilan balik saya, bulan dari tanggal yang diformat salah.
Jan
dikembalikan sebagai Jamn
Mar
dikembalikan sebagai 3amr
Feb
dikembalikan sebagai F0b
Saya mungkin melakukan kesalahan ini tetapi tampaknya aneh bahwa bulan akan kembali seperti ini tanpa menimbulkan kesalahan.
Kode untuk direproduksi
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');
}
}
});
}
Lingkungan
Sel 28 Mar 2017 16:52:21 GMT-0400 (EDT)
28/3/2017, 16:52:21
240
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/56.0.2924.87 Safari/537.36
2.17.1
Nevermind - mengembalikan nilai yang salah.
@dbshwang saya mengalami masalah yang sama. bisa tolong cantumkan resolusinya
@avi-meslati-sp Anda seharusnya hanya mengembalikan string untuk pemformatan - bukan tanggal format yang sebenarnya. Jadi dalam kasus saya:
sameElse: function(now) {
if (this.isSame(now, 'year')) {
return this.format('MMM D');
} else {
return this.format('MMM D, YYYY');
}
}
seharusnya
sameElse: function(now) {
if (this.isSame(now, 'year')) {
return 'MMM D';
} else {
return 'MMM D, YYYY';
}
}
Komentar yang paling membantu
Nevermind - mengembalikan nilai yang salah.