Jelaskan bugnya
isValid tidak berfungsi dengan benar
Untuk Mereproduksi
Langkah-langkah untuk mereproduksi perilaku:
moment('Chicago Illinois 46702').isValid(); // true
Perilaku yang diharapkan
harus salah
Ini valid karena telah diubah menjadi tanggal yang valid:
new Date('Chicago Illinois 46702'); // Wed Jan 01 46702 00:00:00 GMT+0000 (Greenwich Mean Time)
Namun... Anda juga akan melihat peringatan dari saat:
moment('Chicago Illinois 46702').isValid();
Di konsol JavaScript Anda:
Peringatan penghentian: nilai yang diberikan tidak dalam format RFC2822 atau ISO yang dikenali. konstruksi momen jatuh kembali ke js Date(), yang tidak dapat diandalkan di semua browser dan versi. Format tanggal non RFC2822/ISO tidak disarankan dan akan dihapus dalam rilis utama yang akan datang. Silakan merujuk ke http://momentjs.com/guides/#/warnings/js -date/ untuk info lebih lanjut.
Bagaimana dengan ini?
moment('22-10-2020', 'dd-MM-yyyy', true).isValid();
mengembalikan palsu.
EDIT
Saya melihat: moment('22-10-2020', 'DD-MM-YYYY', true).isValid(); bekerja
const allPossibleFormats = [
'D MMMM YYYY',
'D MMMM YYYY HH:mm',
'DD-MM-YY',
'DD-MM-YYYY',
'DD.MM.YYYY',
'DD.MM.YYYY HH:mm',
'DD/MM/YY',
'DD/MM/YYYY',
'DD/MM/YYYY HH:mm:ss',
'HH:mm:ss',
'M/D/YYYY',
'D/M/YYYY',
'MM-DD-YY',
'MM-DD-YYYY',
'MM-DD-YYYY HH:mm:ss',
'MM/DD/YY',
'MM/DD/YYYY',
'MM/DD/YYYY HH:mm:ss',
'MMM D YYYY',
'MMM D YYYY LT',
'MMMM Do YYYY',
'MMMM Do YYYY LT',
'YYYY-DD-MM HH:mm:ss',
'YYYY-MM',
'YYYY-MM-DD',
'YYYY-MM-DD HH:mm',
'YYYY-MM-DD HH:mm:ss',
'YYYY-MM-DD LT',
'YYYY-MM-DD h:mm:ss A',
'YYYY-MM-DDTHH:mm:ssZ',
'ddd, MMM D YYYY LT',
'dddd D MMMM YYYY HH:mm',
'dddd, MMMM Do YYYY LT'
];
moment('Chicago Illinois 46702', allPossibleFormats, true).isValid(); // false
moment('18/01/1944', allPossibleFormats, true).isValid(); // true
moment('22-10-2020', allPossibleFormats, true).isValid(); // true
moment('1944-01-18 12:00:00', allPossibleFormats, true).isValid(); // true
moment('2001-01-01 00:00:00', allPossibleFormats, true).isValid(); // true
moment('2001-01', allPossibleFormats, true).isValid(); // true
Kami juga dapat memperluas array allPossibleFormats
dan menambahkan format tanggal/datetime lainnya
Silakan buka kembali jika Anda masih memiliki masalah.
Komentar yang paling membantu
Kami juga dapat memperluas array
allPossibleFormats
dan menambahkan format tanggal/datetime lainnya