क्षण के साथ प्रारूप तिथि। js


262

मेरे पास इस प्रारूप में एक स्ट्रिंग है:

var testDate = "Fri Apr 12 2013 19:08:55 GMT-0500 (CDT)"

मैं क्षण का उपयोग करना चाहूंगा। इसे mm/dd/yyyy : 04/12/2013प्रदर्शन के लिए इस प्रारूप में प्राप्त करें ।

मैंने इस पद्धति का उपयोग करके इसे करने की कोशिश की,

moment(testDate,'mm/dd/yyyy');

कौन सी त्रुटियां और कहती हैं there is no such method called replace? मैं गलत तरीके से यह आ रहा हूँ?

संपादित करें:

मुझे यह भी उल्लेख करना चाहिए कि मैं क्षण के पूर्व पैक संस्करण का उपयोग कर रहा हूं। जेएस, उल्कापिंड के लिए पैक किया गया

Object [object Date] has no method 'replace' : The Exact error from the console

स्टैक ट्रेस:

 at makeDateFromStringAndFormat (http://127.0.0.1:3000/packages/moment/lib/moment/moment.js?b4e3ac4a3d0794023a4410e7941c3e179398b5b0:539:29)
    at moment (http://127.0.0.1:3000/packages/moment/lib/moment/moment.js?b4e3ac4a3d0794023a4410e7941c3e179398b5b0:652:24)
    at populateProfileForEdit (http://127.0.0.1:3000/client/views/home/administration/directory/profiles/profiles.js?acfff908a6a099f37312f62892a22b40f82e5e0f:147:25)
    at Object.Template.profile_personal.rendered (http://127.0.0.1:3000/client/views/home/administration/directory/profiles/profiles.js?acfff908a6a099f37312f62892a22b40f82e5e0f:130:13)
    at Spark.createLandmark.rendered (http://127.0.0.1:3000/packages/templating/deftemplate.js?b622653d121262e50a80be772bf5b1e55ab33881:126:42)
    at http://127.0.0.1:3000/packages/spark/spark.js?45c746f38023ceb80745f4b4280457e15f058bbc:384:32
    at Array.forEach (native)
    at Function._.each._.forEach (http://127.0.0.1:3000/packages/underscore/underscore.js?867d3653d53e9c7a171483edbcad9670e12288c7:79:11)
    at http://127.0.0.1:3000/packages/spark/spark.js?45c746f38023ceb80745f4b4280457e15f058bbc:382:7
    at _.extend.flush (http://127.0.0.1:3000/packages/deps/deps.js?9642a93ae1f8ffa8eb1c2475b198c764f183d693:231:11) 

1
क्या आप replace()अपने कोड में उपयोग कर रहे हैं ? यदि नहीं, तो आपके द्वारा उपयोग किया जाने वाला प्लगइन अनुचित रूप से एक नोनक्सेंट विधि कह रहा है।
cereallarceny

मैंने अपने प्रश्न को सटीक त्रुटि और स्टैक ट्रेस के साथ उस विधि से अद्यतन किया है जो 'प्रतिस्थापित' कहता है। मैं सीधे जगह पर कॉल नहीं कर रहा हूँ
वारज़

जवाबों:


591

करने के लिए 2 तर्क moment()एक है पार्स प्रारूप एक के बजाय प्रदर्शन प्रारूप।

उसके लिए, आपको .format()विधि चाहिए :

moment(testDate).format('MM/DD/YYYY');

यह भी ध्यान दें कि मामला मायने रखता है। महीना, महीने का महीना और साल के लिए, प्रारूप अपरकेस होना चाहिए।


अति उत्कृष्ट। मैंने शुरू में इसे इस क्षण () (प्रारूप) (जैसे) का उपयोग करने की कोशिश की, जो विफल रहा। धन्यवाद
वार्ज़

var obj = {end_date: moment ($ गुंजाइश.activity.endDate) ।format ('MM / DD / YYYY')};
माइकल जे। कैलकिंस

@MichaelCalkins क्षमा करें। यह किसलिए है? और, AngularJS ( $scope) का अतिरिक्त संदर्भ क्यों ?
जोनाथन लोनोव्स्की

@JonathanLonowski कि कोई भी चर हो सकता है। मैं प्रोग्रामिंग करने और इस उत्तर की तलाश में हुआ। बस एक उदाहरण है।
माइकल जे। कैलकिंस

जब भी मैं प्रारूप का उपयोग करता हूं, मैं उस पर दिनांक () को कॉल नहीं कर सकता। इसलिए मुझे किसी दिन ("DD-MM-YYYY") प्रारूप से बाहर ले जाने के लिए किसी प्रकार के सबस्ट्रिंग निर्माण का उपयोग करना पड़ा।
हेंक जानसन

49

क्षण शामिल करें। जेएस और नीचे दिए गए कोड का उपयोग करके आप अपनी तिथि को प्रारूपित कर सकते हैं

var formatDate= 1399919400000;

var responseDate = moment(formatDate).format('DD/MM/YYYY');

मेरा आउटपुट "13/05/2014" है


1
मैं इसे कैसे उलट सकता हूं? मेरा मतलब है कि अगर मेरे पास बाद का प्रारूप है और मैं इसे पहले एक में बदलना चाहता हूं।
अरसलान तारिक

2
@ArslanTariq आप momentObject.valueOf()युग से मिलीसेकंड प्राप्त करने के लिए उपयोग कर सकते हैं ।
पश्चिमीगुन

8
moment().format();                                // "2019-08-12T17:52:17-05:00" (ISO 8601, no fractional seconds)
moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Monday, August 12th 2019, 5:52:00 pm"
moment().format("ddd, hA");                       // "Mon, 5PM"

1
यह मदद करेगा यदि आपने बताया कि यह कोड ओपी की समस्या को कैसे हल करता है।
रॉबर्ट कोलंबिया

5

आउटपुट दिनांक उपयोग से के लिए format। दूसरा क्षण तर्क पार्स करने के लिए है - हालाँकि यदि आप इसे छोड़ देते हैं तो आप testDateपदावनति चेतावनी का कारण बनेंगे

मूल्यह्रास चेतावनी: प्रदान किया गया मान किसी मान्यताप्राप्त RFC2822 या ISO प्रारूप में नहीं है ...

इस चेतावनी को छोड़ने के लिए आपको पार्सिंग प्रारूप प्रदान करना चाहिए


महान, पहले मुझे हमारे दिनांक प्रारूप की पहचानकर्ता (प्रारूप) फिर इच्छा प्रारूप प्रदान करना होगा। अच्छा उदाहरण है।
सुधीर के गुप्ता
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.