जांचें कि क्या कोई स्ट्रिंग दिनांक मान है


207

यह जांचने का एक आसान तरीका है कि क्या मान एक वैध तिथि है, किसी भी ज्ञात तिथि प्रारूप की अनुमति है।

उदाहरण के लिए मैं मान हो 10-11-2009, 10/11/2009, 2009-11-10T07:00:00+0000सभी दिनांक मानों के रूप में पहचाना जो किया जाना चाहिए, और मूल्यों 200, 10, 350, दिनांक मान के रूप में मान्यता प्राप्त नहीं किया जाना चाहिए जो। यह जांचने का सबसे सरल तरीका क्या है, अगर यह भी संभव है? क्योंकि टाइमस्टैम्प की भी अनुमति होगी।


4
डुप्लिकेट: stackoverflow.com/questions/1353684/…
Daan

जवाबों:


41

चाहेंगे Date.parse()पर्याप्त?

इसका सापेक्ष MDN दस्तावेज़ पृष्ठ देखें ।


24
इससे सावधान रहें क्योंकि यह अभी भी फरवरी में अमान्य तारीखों के लिए वापस आ जाएगा, उदाहरण के लिए: 2013-02-31
leojh

58
सावधान रहने का एक और कारण है - संख्या तारीखों के रूप में पार्स। Date.parse("4.3")है 986270400000
मोगादाद

मैंने ऊपर दिए गए 'सावधानी' के मामलों में दोनों के साथ एक फिडेल की कोशिश की: कंसोल.लॉग (Date.parse ("2013-02-31")); console.log (Date.parse ( "4.3")); और दोनों मामलों में (फ़ायरफ़ॉक्स पर) यह NaN लौटा, इसलिए मेरे लिए, Date.parse ठीक लगता है (मैं वैसे भी पार्स से पहले डैश और सही लंबाई के लिए प्रचलित हूं)।
मेघन्जर

55
क्षमा करें @Asmor, यह एक सही उत्तर नहीं है। Date.parse किसी भी स्ट्रिंग को एक संख्या के साथ पार्स करेगा जिसमें
jervre

11
Date.parse ("मेरा नाम 8") 99662040000 के रूप में आ रहा है जो गलत है। मैंने इसका इस्तेमाल किया और अब पीड़ित हूं।
रोहित

250

2015 अपडेट

यह एक पुराना प्रश्न है लेकिन अन्य नए प्रश्न जैसे:

इस एक के डुप्लिकेट के रूप में बंद हो जाओ, तो मुझे लगता है कि यहाँ कुछ ताज़ा जानकारी जोड़ना महत्वपूर्ण है। मैं इसे लिख रहा हूं क्योंकि मैं यह सोचकर डर गया था कि लोग वास्तव में यहां पोस्ट किए गए कुछ कोड को कॉपी और पेस्ट करते हैं और इसे उत्पादन में उपयोग करते हैं।

यहां अधिकांश उत्तर या तो कुछ जटिल नियमित अभिव्यक्तियों का उपयोग करते हैं जो केवल कुछ बहुत विशिष्ट स्वरूपों से मेल खाते हैं और वास्तव में इसे गलत तरीके से करते हैं (जैसे कि मिलान को वास्तविक आईएसओ तिथि से मेल नहीं खाते जबकि 32 जनवरी को मिलान करते हैं - डेमो देखें ) या वे Dateकंस्ट्रक्टर और कुछ भी पास करने की कोशिश करते हैं शुभकामनाएँ।

पल का उपयोग करना

जैसा कि मैंने इस उत्तर में बताया कि वर्तमान में इसके लिए एक पुस्तकालय उपलब्ध है: क्षण। जेएस

यह जावास्क्रिप्ट में पार्स करने, मान्य करने, हेरफेर करने और प्रदर्शन करने के लिए एक पुस्तकालय है, जिसमें मानक जावास्क्रिप्ट तारीख हैंडलिंग कार्यों की तुलना में बहुत समृद्ध एपीआई है।

यह 12kB छोटा / gzipped और Node.js और अन्य स्थानों पर काम करता है:

bower install moment --save # bower
npm install moment --save   # npm
Install-Package Moment.js   # NuGet
spm install moment --save   # spm
meteor add momentjs:moment  # meteor

मोमेंट का उपयोग करके आप मान्य तिथियों की जाँच के बारे में बहुत विशिष्ट हो सकते हैं। कभी-कभी आपके द्वारा अपेक्षित प्रारूप के बारे में कुछ सुराग जोड़ना बहुत महत्वपूर्ण है। उदाहरण के लिए, एक दिनांक जैसे 06/22/2015 एक वैध तिथि जैसा दिखता है, जब तक कि आप प्रारूप / MM / YYYY प्रारूप का उपयोग नहीं करते हैं, इस स्थिति में इस तिथि को अमान्य माना जाना चाहिए। ऐसे कुछ तरीके हैं जिनसे आप यह बता सकते हैं कि आप किस प्रारूप की उम्मीद करते हैं, उदाहरण के लिए:

moment("06/22/2015", "MM/DD/YYYY", true).isValid(); // true
moment("06/22/2015", "DD/MM/YYYY", true).isValid(); // false

trueतर्क वहाँ बहुत पल इनपुट पार्स करने के लिए अगर यह नहीं है की कोशिश नहीं होगा वास्तव में प्रदान की स्वरूपों में से एक के अनुरूप (यह मेरी राय में एक डिफ़ॉल्ट व्यवहार होना चाहिए)।

आप आंतरिक रूप से प्रदान किए गए प्रारूप का उपयोग कर सकते हैं:

moment("2015-06-22T13:17:21+0000", moment.ISO_8601, true).isValid(); // true

और आप एक सरणी के रूप में कई प्रारूपों का उपयोग कर सकते हैं:

var formats = [
    moment.ISO_8601,
    "MM/DD/YYYY  :)  HH*mm*ss"
];
moment("2015-06-22T13:17:21+0000", formats, true).isValid(); // true
moment("06/22/2015  :)  13*17*21", formats, true).isValid(); // true
moment("06/22/2015  :(  13*17*21", formats, true).isValid(); // false

देखें: डेमो

अन्य पुस्तकालय

यदि आप Moment.js का उपयोग नहीं करना चाहते हैं, तो अन्य पुस्तकालय भी हैं:

2016 अपडेट

मैंने उस अपरिपक्व मॉड्यूल का निर्माण किया, जो कि (एक उपसमुच्चय) क्षण जैसा है लेकिन मौजूदा वस्तुओं के उत्परिवर्तन के कारण आश्चर्य के बिना ( अधिक जानकारी के लिए डॉक्स देखें )।

2018 अपडेट

आज मैं मोमेंट के बजाय डेट / टाइम मैनिपुलेशन के लिए लक्सन का उपयोग करने की सलाह देता हूं , जो (मोमेंट के विपरीत) सभी ऑब्जेक्ट को अपरिवर्तनीय बनाता है, इसलिए डेट्स के निहित उत्परिवर्तन से संबंधित कोई आश्चर्यजनक आश्चर्य नहीं है।

और जानकारी

यह सभी देखें:

रोबर्ट ग्रेवल द्वारा लेखों की एक श्रृंखला जावास्क्रिप्ट तिथि पार्सिंग लाइब्रेरी पर:

जमीनी स्तर

बेशक, कोई भी पहिया को सुदृढ़ करने की कोशिश कर सकता है, एक नियमित अभिव्यक्ति लिख सकता है (लेकिन कृपया ऐसा करने से पहले वास्तव में आईएसओ 8601 और आरएफसी 3339 पढ़ें) या त्रुटि संदेश पार्स करने के लिए यादृच्छिक डेटा वाले buit-in constructors को कॉल करें 'Invalid Date'(क्या आपको यकीन है कि यह संदेश है सभी प्लेटफार्मों पर बिल्कुल समान है? सभी स्थानों में? भविष्य में?) या आप एक परीक्षण किए गए समाधान का उपयोग कर सकते हैं और इसे सुधारने के लिए अपने समय का उपयोग कर सकते हैं, इसे फिर से स्थापित नहीं कर सकते। यहाँ सूचीबद्ध सभी पुस्तकालय खुले स्रोत, मुफ्त सॉफ्टवेयर हैं।


4
वास्तव में इसे कैसे उपयोग करना चाहिए? moment("whatever 123").isValid()लौटता है true
११:४

4
@krivar इसे इस तरह उपयोग करना सबसे अच्छा है: moment("06/22/2015", "DD/MM/YYYY", true).isValid();अपेक्षित तारीख प्रारूप के साथ स्पष्ट रूप से प्रदान किया गया है और एक तर्क के साथ trueजिसका अर्थ है सख्त जाँच। मैंने अधिक जानकारी और बेहतर उदाहरणों के साथ अपना उत्तर अपडेट किया।
आरएसपी

2
हालांकि, लेकिन मैं उपयोगकर्ता इनपुट को मान्य कर रहा हूं और मुझे अपेक्षित तिथि प्रारूप नहीं पता है ...
Jan Van der Haegen

3
@JanVanderHaegen यदि यह अनुमान लगाया जा सकता है कि 3/4/5 एक वैध तारीख है और इसलिए 1 अप्रैल 2015 है, तो मैं उन प्रारूपों (और संभवतः बहुत अधिक) को समर्थित स्वरूपों की एक स्पष्ट सूची में जोड़ने की सलाह दूंगा। ध्यान दें कि आपके द्वारा उल्लिखित 3/4/5 एक स्पष्ट प्रारूप के बिना अस्पष्ट है।
आरपी

3
यह सबसे अच्छा और सबसे अच्छी तरह से बनाए रखा जवाब हो सकता है जो मैंने SO
Phil3992

63

मैं अभी जिस ऐप पर काम कर रहा हूं, उसमें मैंने इस समस्या को हल किया है:

क्रिलगर से प्रतिक्रिया के आधार पर अद्यतन:

var isDate = function(date) {
    return (new Date(date) !== "Invalid Date") && !isNaN(new Date(date));
}

5
मुझे (नई तिथि (तारीख)) वापस करने की आवश्यकता थी। नोड के लिए (स्ट्रिंग)! == "अमान्य दिनांक"। यह भी ध्यान दें? सच: झूठ बेमानी है। बस अभिव्यक्ति लौटाने के लिए यहां पर्याप्त होगा।
domenukk

IE8 में, new Date(date)आपको 'अमान्य दिनांक' नहीं देता है।
क्रिलगर

13
यह एक अच्छा जवाब नहीं है। हमेशा सही वापसी new Date(date) !== "Invalid Date"करेगा क्योंकि बाईं अभिव्यक्ति NaN के समय-समय के साथ एक दिनांक ऑब्जेक्ट लौटाएगा , जो कभी भी एक स्ट्रिंग के लिए नहीं हो सकता है। प्रकार रूपांतरण के कारण "कार्य" का उपयोग करना । लेकिन जब से तार तार की पार्सिंग अभी भी काफी हद तक कार्यान्वयन पर निर्भर है, इस पर भरोसा करते हुए यादृच्छिक स्वरूपों को पार्स करने के लिए हमें गंभीर रूप से दोषपूर्ण है। =====
रोबग

4
नई तिथि ("469") का परिणाम Tue Jan 01 469 00:00:00 GMT + 0200 (EET)
दान ओचियाना

3
यह गलत तरीके से स्वीकार किए गए सही उत्तर के समान है। isDate('Mac OS X 10.14.2')यहाँ सच है।
ब्रैडस्टेल

24

new Date(date) === 'Invalid Date'केवल फ़ायरफ़ॉक्स और क्रोम में काम करता है। IE8 (परीक्षण प्रयोजनों के लिए मेरी मशीन पर एक है) NaN देता है।

जैसा कि स्वीकृत उत्तर में कहा गया था, Date.parse(date) संख्याओं के लिए भी काम करेगा। तो उसके आस-पास जाने के लिए, आप यह भी देख सकते हैं कि यह कोई संख्या नहीं है (यदि ऐसा कुछ है जिसकी आप पुष्टि करना चाहते हैं)।

var parsedDate = Date.parse(date);

// You want to check again for !isNaN(parsedDate) here because Dates can be converted
// to numbers, but a failed Date parse will not.
if (isNaN(date) && !isNaN(parsedDate)) {
    /* do your work */
}

2
मुझे पता है कि यह कुछ साल बाद है, लेकिन isNanयह एक समारोह नहीं है; पहली बार में गलत मामला।
टिम लुईस

काम नहीं करता। यदि dateहै Foostreet 1, तो आपकी स्थिति का मूल्यांकन सही है।
फेबियन पॉनिक

9

इस जैसे किसी और के बारे में क्या राय है? यदि यह दिनांक ऑब्जेक्ट या दिनांक स्ट्रिंग है तो यह परीक्षण करेगा:

function isDate(value) {
    var dateFormat;
    if (toString.call(value) === '[object Date]') {
        return true;
    }
    if (typeof value.replace === 'function') {
        value.replace(/^\s+|\s+$/gm, '');
    }
    dateFormat = /(^\d{1,4}[\.|\\/|-]\d{1,2}[\.|\\/|-]\d{1,4})(\s*(?:0?[1-9]:[0-5]|1(?=[012])\d:[0-5])\d\s*[ap]m)?$/;
    return dateFormat.test(value);
}

मुझे यह उल्लेख करना चाहिए कि यह आईएसओ स्वरूपित तारों के लिए परीक्षण नहीं करता है, लेकिन RegExp में थोड़ा और काम करने के साथ आपको अच्छा होना चाहिए।


7

यहां कोई भी उत्तर यह नहीं बताता है कि क्या दिनांक 31 फरवरी जैसे अमान्य है। यह फ़ंक्शन बताता है कि जाँच करके कि क्या लौटा हुआ महीना मूल महीने के बराबर है और यह सुनिश्चित करता है कि वैध वर्ष प्रस्तुत किया गया था।

//expected input dd/mm/yyyy or dd.mm.yyyy or dd-mm-yyyy
function isValidDate(s) {
  var separators = ['\\.', '\\-', '\\/'];
  var bits = s.split(new RegExp(separators.join('|'), 'g'));
  var d = new Date(bits[2], bits[1] - 1, bits[0]);
  return d.getFullYear() == bits[2] && d.getMonth() + 1 == bits[1];
} 

क्योंकि प्रश्न यह जांचने के लिए तारांकित नहीं है कि क्या एक स्ट्रिंग एक 'वैध' तारीख है, लेकिन सिर्फ स्ट्रिंग की जांच करने से तारीख प्रारूप का प्रतिनिधित्व होता है।
थिज़र

@ टिज़र अच्छा पॉइंट। मुझे तय करने में कोई आपत्ति नहीं होगी लेकिन आपके सवाल को फिर से सुनाने के कारण मैं स्तब्ध हूं क्योंकि आप कहते हैं कि 10 को मान्य नहीं किया जाना चाहिए लेकिन टाइमस्टैम्प की अनुमति होनी चाहिए।
याके का कहना है कि

xD ने यह भी नहीं देखा कि, मेरे पुराने दिनों से एक सवाल / तारीख के साथ। मैं आज बाद में प्रश्न को संपादित करने का प्रयास करूंगा।
थिज़र

क्यों महीना -1 और फिर महीना + 1?
कपिल रघुवंशी

@KapilRaghuwanshi javascript तिथियाँ एक शून्य आधारित महीने का उपयोग करती हैं, इसलिए आपको उचित तिथि बनाने के लिए 1 को घटाना होगा और यह जांचने के लिए 1 जोड़ना होगा कि क्या यह मूल महीने के बराबर है
ykay का कहना है कि मोनिका

5

इसे मान्य करने के लिए नियमित अभिव्यक्ति का उपयोग करें।

isDate('2018-08-01T18:30:00.000Z');

isDate(_date){
        const _regExp  = new RegExp('^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]+)?(Z)?$');
        return _regExp.test(_date);
    }

4

उपरोक्त सभी टिप्पणियों का उल्लेख करके, मैं एक समाधान के लिए आया हूं।

यह काम करता है अगर Dateपारित आईएसओ प्रारूप में है या अन्य प्रारूपों के लिए हेरफेर करने की आवश्यकता है।

var isISO = "2018-08-01T18:30:00.000Z";

if (new Date(isISO) !== "Invalid Date" && !isNaN(new Date(isISO))) {
    if(isISO == new Date(isISO).toISOString()) {
        console.log("Valid date");
    } else {
        console.log("Invalid date");
    }
} else {
    console.log("Invalid date");
}

आप यहां JSFiddle पर खेल सकते हैं ।


1
इस समाधान ने मेरे लिए सबसे अच्छा काम किया क्योंकि तारीख का तार मेरे ऐप का समर्थन प्रारूप का है YYYY-MM-DD, इसलिए T00:00:00.000Zमान्य स्ट्रिंग्स की जांच के लिए इस समाधान को संलग्न करना और इसका उपयोग करना तुच्छ है ।
तेज करें

जावास्क्रिप्ट के लिए यह काम कर रहा है, लेकिन इसे टाइपस्क्रिप्ट में कैसे उपयोग किया जाए।?
साए

3

यहाँ एक बेहतर कार्य है जो केवल उपयोग करता है Date.parse():

function isDate(s) {
    if(isNaN(s) && !isNaN(Date.parse(s)))
        return true;
    else return false;
}

नोट: Date.parse () संख्याओं को पार्स करेगा: उदाहरण के लिए Date.parse(1)एक तारीख लौटाएगा। तो यहाँ हम जाँचते हैं कि sक्या यह संख्या नहीं है, यदि यह एक तारीख है।


1
यह 'परीक्षण 2' को पारित करने के रूप में काम नहीं करता है यह एक सही तारीख के रूप में पारित होगा। क्रोम के नवीनतम संस्करण में परीक्षण किया गया
user1751287

2

मैं ऐसा करूंगा

var myDateStr= new Date("2015/5/2");

if( ! isNaN ( myDateStr.getMonth() )) {
    console.log("Valid date");
}
else {
    console.log("Invalid date");
}

यहां खेलते हैं


2
यह वर्तमान क्रोम, संभवतः अन्य ब्राउज़रों में काम नहीं करता है। मैंने प्रदान की गई स्ट्रिंग को बदल दिया EXAMPLE STRING 12345और यह "मान्य तिथि" लौटाता है।

1

यहाँ एक न्यूनतावादी संस्करण है।

var isDate = function (date) {
    return!!(function(d){return(d!=='Invalid Date'&&!isNaN(d))})(new Date(date));
}

1
अभी भी मेरे उदाहरण के लिए काम नहीं करता है:isDate("  1")
टॉमस

@ आपको यह जाँचना चाहिए कि क्या यह निर्धारित करने से पहले कि मूल्य में सफेद-अंतरिक्ष वर्ण हैं या नहीं। आपका मुद्दा एक विशेष मामला है जिसे आपके नियंत्रक तर्क द्वारा नियंत्रित किया जाना चाहिए।
श्री पॉलीविरल

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

1

यह कॉल करने योग्य फ़ंक्शन पूरी तरह से काम करता है, वैध तिथि के लिए सही है। आईएसओ प्रारूप (yyyy-mm-dd या yyyy / mm / dd) पर दिनांक का उपयोग करना सुनिश्चित करें:

function validateDate(isoDate) {

    if (isNaN(Date.parse(isoDate))) {
        return false;
    } else {
        if (isoDate != (new Date(isoDate)).toISOString().substr(0,10)) {
            return false;
        }
    }
    return true;
}

1
यह अच्छा है, लेकिन यह पूरी तरह से सवाल का जवाब नहीं देता है। विशेष रूप से, यह '2009-11-10T07: 00: 00 + 0000' के लिए काम नहीं करता है, दिए गए उदाहरणों में से एक।
अमदन

यह मत समझो कि यह मान्य होना चाहिए ('2016-12-30T08: 00: 00.000Z') // झूठा
जोस ब्राउन

भले ही यह काम करता हो या नहीं, इसे सरल बनाया जा सकता हैreturn !isNaN(Date.parse(isoDate)) || isoDate == new Date(isoDate).toISOString().substr(0,10);
मिशेल जंग

1

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मैंने उसी समस्या का सामना किया और देखा कि किसी भी उत्तर ने ठीक से काम नहीं किया - विशेष रूप से तारीखों से संख्या (1,200,345, आदि) को बाहर निकालना, जो कि मूल प्रश्न है। यहाँ एक अपरंपरागत तरीका है जिसके बारे में मैं सोच सकता था और यह काम करने लगता है। कृपया ध्यान दें कि क्या ऐसे मामले हैं जहां यह विफल हो जाएगा।

if(sDate.toString() == parseInt(sDate).toString()) return false;

यह संख्या को बाहर करने के लिए खरपतवार है। इस प्रकार, संपूर्ण फ़ंक्शन ऐसा दिख सकता है:

function isDate(sDate) {  
  if(sDate.toString() == parseInt(sDate).toString()) return false; 
  var tryDate = new Date(sDate);
  return (tryDate && tryDate.toString() != "NaN" && tryDate != "Invalid Date");  
}

console.log("100", isDate(100));
console.log("234", isDate("234"));
console.log("hello", isDate("hello"));
console.log("25 Feb 2018", isDate("25 Feb 2018"));
console.log("2009-11-10T07:00:00+0000", isDate("2009-11-10T07:00:00+0000"));


1
console.log("hello 1 ", isDate("hello 1 "));यह सच है
जॉन

तुम सही हो! क्या आपके पास एक समाधान है? अब तक मुझे लगता है कि यहां कोई भी उत्तर वास्तव में प्रश्न को उचित रूप से संबोधित नहीं करता है!
5

"100%", एक प्रतिशत, रिटर्न सही
toddmo

0

क्या दिनांक से संबंधित फ़ंक्शन की जाँच करना ऑब्जेक्ट के लिए उपलब्ध है, यह जानने के लिए कि वह दिनांक ऑब्जेक्ट है या नहीं?

पसंद

var l = new Date();
var isDate = (l.getDate !== undefined) ? true; false;

0

यह है कि मैं इसे कैसे कर रहा हूं। यह सभी प्रारूपों को कवर नहीं करेगा। आपको उसके अनुसार एडजस्ट करना होगा। प्रारूप पर मेरा नियंत्रण है, इसलिए यह मेरे लिए काम करता है

function isValidDate(s) {
            var dt = "";
            var bits = [];
            if (s && s.length >= 6) {
                if (s.indexOf("/") > -1) {
                    bits = s.split("/");
                }
                else if (s.indexOf("-") > -1) {
                    bits = s.split("-");
                }
                else if (s.indexOf(".") > -1) {
                    bits = s.split(".");
                }
                try {
                    dt = new Date(bits[2], bits[0] - 1, bits[1]);
                } catch (e) {
                    return false;
                }
                return (dt.getMonth() + 1) === parseInt(bits[0]);
            } else {
                return false;
            }
        }

-1

ठीक है, यह एक पुराना सवाल है, लेकिन मैंने यहां समाधानों की जांच करते हुए एक और समाधान पाया। मेरे लिए यह जाँचने का कार्य करता है कि फ़ंक्शन ऑब्जेक्ट समय पर मौजूद है ()

const checkDate = new Date(dateString);

if (typeof checkDate.getTime !== 'function') {
  return;
}

-1

document.getElementById('r1').innerHTML = dayjs('sdsdsd').isValid()

document.getElementById('r2').innerHTML = dayjs('2/6/20').isValid()
<script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>

<p>'sdsdsd' is a date: <span id="r1"></span></p>
<p>'2/6/20' is a date: <span id="r2"></span></p>

एक लाइट वेट लाइब्रेरी आपके लिए तैयार है: Day.js


1
यह मूल रूप से StackOverflow पर विज्ञापन है, ऐसा करने से बचना चाहिए।
c4sh

-4
SimpleDateFormat sdf = new SimpleDateFormat(dateFromat);
sdf.setLenient(false);

डिफ़ॉल्ट रूप से यह TRUE पर सेट है। तो गलत प्रारूप के तार भी अच्छे मूल्यों को लौटाते हैं।

मैंने इसे कुछ इस तरह इस्तेमाल किया है:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
formatter.setLenient(false);
String value = "1990/13/23"; 

try {
      Date date = formatter.parse(value);
      System.out.println(date);
    }catch (ParseException e) 
  {
    System.out.println("its bad");
  }

5
... जावास्क्रिप्ट ?!
कलापार्क

-5

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

if (var date = new Date(yourDateString)) {
    // if you get here then you have a valid date       
}

6
यह मेरे लिए काम नहीं करता है। पहली स्थिति में संस्करण पार्स नहीं करता है, लेकिन यदि आप उसे हटा देते हैं और कुछ इस तरह का प्रयास करते हैं: यदि (तिथि = नई तिथि ("बकवास")) {चेतावनी (तारीख); } भले ही तारीख बकवास है, फिर भी अलर्ट निष्पादित होगा क्योंकि दिनांक फ़ंक्शन "अमान्य दिनांक" (कम से कम फ़ायरफ़ॉक्स पर) लौटाएगा, इसलिए स्थिति सत्य का मूल्यांकन करती है। मुझे लगता है कि यदि कुछ ब्राउज़र अमान्य दिनांक पर वापस आ जाते हैं, तो यह उन ब्राउज़रों पर काम करेगा। यहां ब्राउज़र असंगतता हो सकती है।
मेघनागर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.