Konstruksi tanggal di moment
internal menggunakan new Date()
javascript. The new Date()
konstruksi mengakui string tanggal baik RFC2822 atau ISO format di semua browser. Saat membangun amoment
objek dengan tanggal tidak dalam format ini, peringatan penghentian dilemparkan.
Meskipun peringatan penghentian dilemparkan, untuk beberapa format, moment
objek akan berhasil dibangun di Chrome, tetapi tidak di Firefox atau Safari. Karena itu, memproses tanggal di Chrome dapat memberikan hasil seperti yang diharapkan (tidak setiap saat) dan melemparInvalid Date
lain.
Mempertimbangkan, 02.02.2018
,
Chrome - moment("02.02.2018")._d
->Fri Feb 02 2018 00:00:00 GMT+0530 (India Standard Time)
Firefox - moment("02.02.2018")._d
->Invalid Date
Safari - moment("02.02.2018")._d
->Invalid Date
Jadi moment.js
digunakan dengan risiko Anda sendiri jika format yang direkomendasikan / standar tidak digunakan.
Untuk menekan peringatan penghentian ,
- Seperti yang disarankan oleh @ Jo Wilson dalam jawaban sebelumnya, berikan format tanggal pada
moment
konstruksi.
Contoh: moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
- Berikan tanggal dalam format ISO atau RFC2822.
Contoh: moment("2018-02-01T18:30:00.000Z")
- Format ISO
moment("Thu, 01 Feb 2018 18:30:00 GMT")
- Format RFC2822 - Format dalam Github
- Seperti yang disarankan oleh @niutech dalam jawaban sebelumnya, atur
moment.suppressDeprecationWarnings = true;
Saya menyarankan untuk menimpa input fallback pada saat itu.
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
Karena (3) akan menekan semua peringatan, (4) hanya akan menekan mundurnya tanggal konstruksi. Menggunakan (4), Anda akan mendapatkan Invalid Date
karena internal new Date()
digunakan dan penghentian lainnya dapat dilihat di konsol, sehingga momen dapat ditingkatkan atau metode yang sudah usang dapat diganti dalam aplikasi.