momentआंतरिक रूप से दिनांक निर्माण new Date()जावास्क्रिप्ट में उपयोग करता है । new Date()निर्माण या तो में दिनांक स्ट्रिंग को पहचानता है RFC2822 या आईएसओ सभी ब्राउज़रों में प्रारूपों। जब momentइन स्वरूपों में नहीं तारीख के साथ एक वस्तु का निर्माण , पदावनति चेतावनी फेंक दिया है।
हालाँकि, कुछ स्वरूपों के लिए, अवक्षेपण चेतावनी को फेंक दिया जाता है, momentवस्तु का निर्माण क्रोम में सफलतापूर्वक किया जाएगा, लेकिन फ़ायरफ़ॉक्स या सफारी में नहीं। इसके कारण, Chrome में दिनांक संसाधित करना अपेक्षित (हर समय नहीं) के रूप में परिणाम दे सकता है और Invalid Dateदूसरों में फेंकता है।
विचार करें 02.02.2018,
क्रोम - moment("02.02.2018")._d>>Fri Feb 02 2018 00:00:00 GMT+0530 (India Standard Time)
फ़ायरफ़ॉक्स - moment("02.02.2018")._d>>Invalid Date
सफ़ारी - moment("02.02.2018")._d->Invalid Date
यदि moment.jsअनुशंसित / मानक प्रारूप का उपयोग नहीं किया जाता है तो आपके जोखिम पर इसका उपयोग किया जाता है।
दबाना चेतावनी को दबाने के लिए ,
- जैसा कि पिछले उत्तर में @ जो विल्सन द्वारा सुझाया गया है,
momentनिर्माण पर तारीख का प्रारूप दें ।
उदाहरण : moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
- आईएसओ या RFC2822 प्रारूप में तारीख दें।
उदाहरण: moment("2018-02-01T18:30:00.000Z")- आईएसओ प्रारूप
moment("Thu, 01 Feb 2018 18:30:00 GMT")- RFC2822 प्रारूप - Github में प्रारूप
- जैसा कि पिछले उत्तर में @niutech द्वारा सुझाया गया था, सेट करें
moment.suppressDeprecationWarnings = true;
मेरा सुझाव है कि पल में इनपुट में गिरावट को अधिलेखित करें।
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
जैसा कि (3) सभी चेतावनियों को दबाएगा, (4) केवल निर्माण की तारीख में गिरावट को दबाएगा। (4) का उपयोग करते हुए, आप प्राप्त Invalid Dateकरेंगे जैसे कि आंतरिक new Date()उपयोग किया जाता है और अन्य अपक्षय कंसोल में देखे जा सकते हैं, इसलिए पल को अपग्रेड किया जा सकता है या अपग्रेड किए गए तरीकों को आवेदन में बदला जा सकता है।