जावास्क्रिप्ट में पार्स डेटाइम स्ट्रिंग


94

क्या किसी को पता है कि आवश्यक प्रारूप में दिनांक स्ट्रिंग पार्स कैसे करें dd.mm.yyyy?


क्या आप उस प्रारूप में एक स्ट्रिंग से एक नई तिथि ऑब्जेक्ट बनाना चाहते हैं?
किरन हॉल

जवाबों:


140

देख:

कोड:

var strDate = "03.09.1979";
var dateParts = strDate.split(".");

var date = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);

एमएमएम, लेकिन स्ट्रैड की जांच कैसे करें "30.30.2000" जैसे एक अमान्य मूल्य है?
डॉ। नहीं

2
@ user674887, आप पार्स करने के बाद मूल्यों की तुलना कर सकते हैं। उदाहरण के लिए तारीखें [1] -1 == date.getMonth ()
जोनाथन फिंगलैंड

यदि आपके पास इस तरह दोनों समय है: "2014-05-20T16: 43: 56.71-06: 00" var partesFecha = solicitud.CreatedDate.split ("T") [0] .sitit ("-"); var createDate = new Date (partesFecha [0], (partesFecha [1] - 1), partesFecha [2]); पहले टी से पहले निकालने की तारीख और बाद में वर्ष, महीने और दिन को विभाजित करें।
रोलैंडसीसी

विश्वास नहीं कर सकता कि आपको जावास्क्रिप्ट में अपेक्षित तिथि प्रारूप प्राप्त करने के लिए एक विभाजन का उपयोग करना होगा
क्लाउडीयू क्रेंगना

किसी और को यह अजीब लगता है कि डेट ऑब्जेक्ट पर मोज़िला संदर्भ लेख खुद कहता है "Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies."?
नैनोवेयर

51

यदि आप jQuery UI का उपयोग कर रहे हैं, तो आप किसी भी तारीख को इसके साथ प्रारूपित कर सकते हैं:

<html>
    <body>
        Your date formated: <span id="date1"></span><br/>
    </body>
</html>

 

var myDate = '30.11.2011';
var parsedDate = $.datepicker.parseDate('dd.mm.yy', myDate);

$('#date1').text($.datepicker.formatDate('M d, yy', parsedDate));

http://jsfiddle.net/mescalito2345/ND2Qg/14/


21
+1 मैं पूरी तरह से दायरे से बाहर नहीं दिखता, जावास्क्रिप्ट और JQuery एक आम संयोजन है।
djna

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

9

हम इस कोड का उपयोग यह जांचने के लिए करते हैं कि क्या स्ट्रिंग एक वैध तारीख है

var dt = new Date(txtDate.value)
if (isNaN(dt))


यह बिल्कुल वैध तिथियों के लिए परीक्षण नहीं करता है, यह सिर्फ परीक्षण करता है कि दिनांक निर्माणकर्ता इनपुट से मान्य दिनांक बना सकता है या नहीं। दोनों एक ही चीज नहीं हैं।
रोबग

6

Refs: http://momentjs.com/docs/#/parsing/string/

यदि आप moment.js का उपयोग करते हैं, तो आप "string" + "format" मोड का उपयोग कर सकते हैं

moment(String, String);
moment(String, String, String);
moment(String, String, Boolean);
moment(String, String, String, Boolean);

उदाहरण के लिए:

moment("12-25-1995", "MM-DD-YYYY");

2
ज्यादातर मामलों में, मोमेंटजेएस एक ओवरकिल है, क्योंकि शुद्ध जावास्क्रिप्ट का उपयोग करने के लिए बस सैकड़ों बाइट्स की आवश्यकता होती है, जबकि मोमेंटजेएस 12.4kb है। डेवलपर्स के लिए सुविधाजनक है, लेकिन वेबसाइट धीमा कर देती है। के लायक नहीं है।
रैप्टर

3

मैं IE में कोड का उपयोग कर रहा हूँ। (IE8 संगत)

var dString = "2013.2.4";
var myDate = new Date( dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1") );
alert( "my date:"+ myDate );


2

दिनांक ऑब्जेक्ट का उपयोग करें:

var time = Date.parse('02.02.1999');
document.writeln(time);

दे: 917902800000


16
new Date(Date.parse('02.02.1999'))
ड्यूक

+1 new Date(Date.parse('02.02.1999'))जावास्क्रिप्ट पर जावास्क्रिप्ट टिप्पणियों के लिए
जैक

कम से कम दो वर्तमान ब्राउज़रों में NaN लौटाता है। देखें क्यों Date.parse गलत परिणाम देता है?
1

@ ड्यूक- कुछ ब्राउज़रों में अमान्य दिनांक सहित new Date(Date.parse('02.02.1999'))समान परिणामों का उत्पादन करेगा । बिल्ट-इन पार्सर का उपयोग यकीनन टाइमस्टैम्प को पार्स करने का सबसे खराब तरीका है। new Date('02.02.1999')
1

2

यह फ़ंक्शन अमान्य 29.2.2001 तारीख को भी संभालता है।

function parseDate(str) {
    var dateParts = str.split(".");
    if (dateParts.length != 3)
        return null;
    var year = dateParts[2];
    var month = dateParts[1];
    var day = dateParts[0];

    if (isNaN(day) || isNaN(month) || isNaN(year))
        return null;

    var result = new Date(year, (month - 1), day);
    if (result == null)
        return null;
    if (result.getDate() != day)
        return null;
    if (result.getMonth() != (month - 1))
        return null;
    if (result.getFullYear() != year)
        return null;

    return result;
}

0

आप इस प्रकार के कोड बनाने की तिथि को प्रारूपित कर सकते हैं। जावास्क्रिप्ट में।

 // for eg.
              var inputdate=document.getElementById("getdate").value);
                 var datecomp= inputdate.split('.');

                Var Date= new Date(datecomp[2], datecomp[1]-1, datecomp[0]); 
                 //new date( Year,Month,Date)

आप जावास्क्रिप्ट का उपयोग करने के लिए नहीं jquery नहीं jquery टैग के रूप में माना जाता है
सागर

खुश ... अर्थ सिर्फ सेनारियो को समझना है
Bachas

कुंआ। मुझे नहीं लगता कि मार्टिन स्टॉफिक द्वारा दिए गए उदाहरण से आपका उदाहरण अलग है। वास्तव में उनके जवाब में अमान्य तारीखों को संभालने के लिए अतिरिक्त तर्क हैं।
सागर

मार्टिन स्टॉफिक उन परिस्थितियों को संभालते हैं जो आम तौर पर नहीं होती हैं। क्या आप मुझे कोई भी कैलेंडर दे सकते हैं जो अमान्य कर सकता है। क्यों कि हमें इतने लंबे कोड लिखने चाहिए जब हम छोटे तरीके से संभाल सकें। यह बहुत बेहतर होगा अगर मार्टिन स्टॉफिक भी समय को संभालने के लिए तारीख को संभालने के लिए दे।
बच्चा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.