Parse string to date with moment.js


176

मैं निम्नलिखित स्ट्रिंग को पल के साथ पार्स करना चाहता हूं। 2014-02-27T10: 00: 00 और आउटपुट डे महीने साल (14 मार्च 2014) मैं डॉक्स पढ़ रहा हूं, लेकिन सफलता के बिना http://momentjs.com/docs/# / पार्स / अब /

जवाबों:


207

आपको .format()फ़ंक्शन का उपयोग करने की आवश्यकता है ।

MM - महीने की संख्या

MMM - माह शब्द

var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY');
var dateMonthAsWord = moment("2014-02-27T10:00:00").format('DD-MMM-YYYY');

बेला


मौजूदा तिथि चर के बारे में क्या। var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY'); var dateCalendarPart = moment(date).format('YYYY/MM/DD'); alert(date); alert(dateCalendarPart);अमान्य दिनांक त्रुटि देता है ?????
एंड्रयू डे

3
try '' var dateCalendarPart = moment (तिथि, 'YYYY / MM / DD'); चेतावनी (तारीख); ''
रंजन

@AndrewDay ... "01-02-2017", "2 जनवरी" या "1 फरवरी"? मोमेंटज आपके दिमाग को नहीं पढ़ सकते हैं।
पत्ती

3
यह जवाब केवल इसलिए काम करता है क्योंकि ओपी का स्ट्रिंग एक मानक तिथि प्रारूप में है। स्टीफन पॉल का जवाब दिखाता है कि किसी भी स्ट्रिंग को कैसे परिवर्तित किया जाए, एक विशिष्ट प्रारूप दिया जाता है, उस तिथि तक जिसे हेरफेर किया जा सकता है।
अगामेन्नुस

364

मैं हमेशा अपने आप को यहाँ उतरने के लिए लगता है केवल महसूस करने के लिए कि शीर्षक और प्रश्न काफी संरेखित नहीं हैं।

यदि आप एक तार से एक पल की तारीख चाहते हैं :

const myMoment = moment(str, 'YYYY-MM-DD')

से पल प्रलेखन :

देशी Date.prototype को संशोधित करने के बजाय, Moment.js दिनांक ऑब्जेक्ट के लिए एक आवरण बनाता है।

यदि आप इसके बजाय एक स्ट्रिंग से एक जावास्क्रिप्ट तिथि वस्तु चाहते हैं :

const myDate = moment(str, 'YYYY-MM-DD').toDate();

16
हाँ, यह केवल एक ही जवाब देता है। आज तक पार्सिंग स्ट्रिंग (मतलब इनपुट
स्ट्रैट

@ deathangel908 लोल, एक स्पष्टीकरण की कोई आवश्यकता नहीं है, सवाल पूरी तरह से स्पष्ट है।
पत्ती

20

इसके स्वरूप के मानक होने के बाद से इनपुट को पार्स करने के लिए क्षण की आवश्यकता नहीं है:

var date = new Date('2014-02-27T10:00:00');
var formatted = moment(date).format('D MMMM YYYY');

http://es5.github.io/#x15.9.1.15


1
यही सत्य, moment.js की कोई आवश्यकता नहीं है, तो आप एक आईएसओ दिनांक स्ट्रिंग है ... तुम भी इस्तेमाल कर सकते हैं है Date.parse अधिक स्पष्ट होना कि तुम आईएसओ तार (के बाद से निर्माता अन्य प्रारूपों ले जा सकते हैं) के साथ हैं काम कर रहे
जुआन मेंडेस

3
IE8 में काम नहीं करता है ... क्या आश्चर्य है ... देता है NaN
पत्ती

@JuanMendes, आपका लिंक कहता है, कि Date.parseकॉल करता है new Date, इसलिए इससे कोई फर्क नहीं पड़ना चाहिए।
sk904861

6

मुझे जो चाहिए था, उसके लिए पल एकदम सही था। ध्यान दें कि यह घंटों और मिनटों की उपेक्षा करता है और यदि आप इसे करते हैं तो बस यह बात है। यह मेरे लिए एकदम सही था क्योंकि मेरा एपीआई कॉल तारीख और समय को वापस लाता है लेकिन मुझे केवल तारीख की परवाह है।

function momentTest() {

  var varDate = "2018-01-19 18:05:01.423";
  var myDate =  moment(varDate,"YYYY-MM-DD").format("DD-MM-YYYY");
  var todayDate = moment().format("DD-MM-YYYY");  
  var yesterdayDate = moment().subtract(1, 'days').format("DD-MM-YYYY");   
  var tomorrowDate = moment().add(1, 'days').format("DD-MM-YYYY");

  alert(todayDate);

  if (myDate == todayDate) {
    alert("date is today");
  } else if (myDate == yesterdayDate) {
    alert("date is yesterday");
  } else if (myDate == tomorrowDate) {
    alert("date is tomorrow");
  } else {
    alert("It's not today, tomorrow or yesterday!");
  }
}


0
  • किसी भी स्ट्रिंग दिनांक को ऑब्जेक्ट दिनांक (क्षण के साथ भी) में कैसे बदलें:

let startDate = "2019-01-16T20:00:00.000"; let endDate = "2019-02-11T20:00:00.000"; let sDate = new Date(startDate); let eDate = new Date(endDate);

  • क्षण के साथ। js:

startDate = moment(sDate); endDate = moment(eDate);

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.