मैं क्षण के साथ दिनांक से समय कैसे निकाल सकता हूं।


268
formatCalendarDate = function (dateTime) {
    return moment.utc(dateTime).format('LLL');
};

यह प्रदर्शित करता है: "28 फ़ेब्रुअरी 2013 09:24"

लेकिन मैं अंत में समय निकालना चाहूंगा। मैं उसे कैसे कर सकता हूँ?

मैं Moment.js का उपयोग कर रहा हूं ।


स्ट्रिंग्स को अलग करने के लिए स्प्लिट विधि का उपयोग करें
AmGates

जवाबों:


605

इतनी देर में कूदने के लिए क्षमा करें, लेकिन यदि आप इसे फ़ॉर्मेट करने के बजाय समय के भाग को निकालना चाहते हैं , तो कोड है:moment()

.startOf('day')

रेफरी: http://momentjs.com/docs/#/manipulating/start-of/


90
यदि आप टाइमज़ोन के बीच जा रहे हैं (या यदि आप टाइमज़ोन पर ध्यान नहीं दे रहे हैं) तो इससे सावधान रहें। मेरे पास एक मुद्दा था जहां मेरी यूटीसी तारीख स्थानीय समय में परिवर्तित हो रही थी, फिर आवेदन startOf('day')किया गया, जो तब पिछले दिन की शुरुआत थी । के साथ फिक्स्डmoment(moment.utc('2013-10-29T00:00:00+00:00').startOf('day').format('LL')).startOf('day').toDate()
कॉलिन

26
यह भी ध्यान रखें कि यह फ़ंक्शन वास्तव में मूल वस्तु को बदल देता है
डिर्क बोअर

6
.startOf('day')प्रति सेकेण्ड पार्ट को नहीं हटाता है, यह समय 00:00:00 पर सेट करता है। इसलिए, हाँ, जैसा कि 'कॉलिन' द्वारा टिप्पणी की गई है, आपको तारीख बचाने के दौरान सावधान रहना होगा। बेहतर विकल्प उपयोग कर रहा है format('LL'), जैसा कि इस धागे में उत्तर दिया गया है।
सुदर्शन_एसएमडी

4
मूल वस्तु को बदलने से बचने के लिए, का उपयोग करें someMoment.clone().startOf('day')या moment(someMoment).startOf('day')
पेंग

सावधान रहें, startOf ('दिन') सब कुछ रीसेट कर देगा और न केवल 00:00:00 बजे का समय निर्धारित करेगा। moment().utc().add(1,'d').startOf('day')आज के लिए ऑब्जेक्ट रीसेट करेगा।
ट्रिस्टन

50

उपयोग format('LL')

आप इसके साथ क्या करने की कोशिश कर रहे हैं, उसके आधार पर यह format('LL')चाल हो सकती है। यह कुछ इस तरह का उत्पादन करता है:

Moment().format('LL'); // => April 29, 2016

26

अपनी आवश्यकता के अनुसार इनपुट निर्दिष्ट करने का सही तरीका होगा जो आपको अधिक लचीलापन देगा।

वर्तमान परिभाषा में निम्नलिखित शामिल हैं

LTS : 'h:mm:ss A', LT : 'h:mm A', L : 'MM/DD/YYYY', LL : 'MMMM D, YYYY', LLL : 'MMMM D, YYYY h:mm A', LLLL : 'dddd, MMMM D, YYYY h:mm A'

आप इनमें से किसी का भी उपयोग कर सकते हैं या इनपुट को पल में बदल सकते हैं ()। प्रारूप ()। उदाहरण के लिए, आपके मामले के लिए आप पास हो सकते हैं moment.utc(dateTime).format('MMMM D, YYYY')




6

क्षण के नए संस्करणों के साथ। आप यह भी कर सकते हैं:

var dateTime = moment();

var dateValue = moment({
    year: dateTime.year(),
    month: dateTime.month(),
    day: dateTime.date()
});

देखें: http://momentjs.com/docs/#/parsing/object/


date: dateTime.date()इसके बजाय नहीं होगा day: dateTime.date()?
फिल्पेरो

1
'दिन और तारीख कुंजी दोनों महीने के दिन का मतलब है।' डॉक्स से। dayपूर्व संस्करण 2.8.4 काम करता है।
पुरानी छिपकली

6

ठीक है, इसलिए मुझे पता है कि मैं पार्टी में देर से जा रहा हूं। 6 साल की देरी से लेकिन यह कुछ ऐसा था जिसकी मुझे जरूरत थी और इसे YYYY-MM-DD स्वरूपित किया।

moment().format(moment.HTML5_FMT.DATE); // 2019-11-08

आप किसी पैरामीटर में भी पास कर सकते हैं, जैसे 2019-11-08T17:44:56.144

moment("2019-11-08T17:44:56.144").format(moment.HTML5_FMT.DATE); // 2019-11-08

https://momentjs.com/docs/#/parsing/special-formats/


4

जब भी मैं moment.jsपुस्तकालय का उपयोग करता हूं मैं वांछित प्रारूप को इस प्रकार निर्दिष्ट करता हूं:

moment(<your Date goes here>).format("DD-MMM-YYYY")

या

moment(<your Date goes here>).format("DD/MMM/YYYY")

... आदि मुझे आशा है कि आपको यह विचार मिलेगा

प्रारूप फ़ंक्शन के अंदर, आप वांछित प्रारूप डालते हैं। ऊपर दिए गए उदाहरण से दिनांक और सेकंड जैसे सभी अवांछित तत्वों से छुटकारा मिल जाएगा


यदि आप कभी भी अपनी सामग्री को विभिन्न स्थानों पर प्रदर्शित करना चाहते हैं तो यह अच्छा विचार नहीं है। आप उपयोगकर्ता किसी भी स्थान के लिए सही प्रारूप में तिथियां प्रदर्शित करना चाहते हैं, तो आप पूर्व निर्धारित तिथि स्वरूपों में से एक (उपयोग करने की आवश्यकता L, LLआदि)
ए जे रिचर्डसन

आप तीन बार MMM क्यों सेट करते हैं।
मेनाई अला एडडिन - अलादीन

MMM आपको महीने के पहले 3 अक्षर देगा। 'अप्रैल' एमएमएमएम आपको एक पूरे महीने का नाम देगा
एड्रियन ग्रेजवाकेवस्की

4

मेरे जैसे लोगों के लिए लंबी तारीख प्रारूप ( LLLL) चाहते हैं, लेकिन दिन के समय के बिना, इसके लिए एक GitHub मुद्दा है: https://github.com/moment/moment/issues/2505 । अभी के लिए, एक वर्कअराउंड है:

var localeData = moment.localeData( moment.locale() ),
    llll = localeData.longDateFormat( 'llll' ),
    lll = localeData.longDateFormat( 'lll' ),
    ll = localeData.longDateFormat( 'll' ),
    longDateFormat = llll.replace( lll.replace( ll, '' ), '' );
var formattedDate = myMoment.format(longDateFormat);

1
अंत में एक समझदार उत्तर। मेरे अपवित्र को ले लो सर! इस मुद्दे को अभी तक संबोधित नहीं किया गया है।
इलोजी

3

आप इस कंस्ट्रक्टर का उपयोग कर सकते हैं

moment({h:0, m:0, s:0, ms:0})

http://momentjs.com/docs/#/parsing/object/

console.log( moment().format('YYYY-MM-DD HH:mm:ss') )

console.log( moment({h:0, m:0, s:0, ms:0}).format('YYYY-MM-DD HH:mm:ss') )
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>


यहाँ कुछ अयस्क विवरण जोड़ें
मैथ्यू सनी

यह दिलचस्प है! यह एक पल बना रहा है और घंटे, मिनट और सेकंड ओवरराइड कर रहा है, लेकिन फिर भी अंडरलिंग डेट को बनाए रखता है। दिलचस्प है क्योंकि मैंने अनुमान लगाया moment({h:0, m:0, s:0, ms:0})होगा कि मुझे आज के बजाय 1 जनवरी 1970 दिया गया होगा।
सिमोन_विवर

जैसा दिखता है वैसा moment({ h: 0 })ही करता है।
सिमोन_विवर

1
डॉक्स कहते हैंOmitted units default to 0 or the current date, month, and year.
सिमोन_विवर

2

इसे इस्तेमाल करे:

moment.format().split("T")[0]

इस विधि के साथ देखें, क्योंकि 1993-06-07T22:00:00.000Zयह परिणाम होगा , 1993-06-07जबकि यह दिन की शुरुआत है1993-06-08
टॉम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.