2013-02-25 7 views
10

में आज की तारीख के साथ स्ट्रिंग की तुलना करें मुझे एक इनपुट फ़ील्ड से एक स्ट्रिंग मिली है जिसका उपयोग मैं इस 25-02-2013 के प्रारूप के साथ दिनांक के लिए करता हूं। अब मैं स्ट्रिंग की आज की तारीख से तुलना करना चाहता हूं। मैं जानना चाहता हूं कि आज की तारीख पुरानी या नई है या नहीं।जावास्क्रिप्ट

कोई सुझाव?

+0

मुझे लगता है कि आपको http://stackoverflow.com/a/8215648/1520671 –

उत्तर

0
<script type="text/javascript"> 

var q = new Date(); 
var m = q.getMonth()+1; 
var d = q.getDay(); 
var y = q.getYear(); 

var date = new Date(y,m,d); 

mydate=new Date('2011-04-11'); 
console.log(date); 
console.log(mydate) 

if(date>mydate) 
{ 
    alert("greater"); 
} 
else 
{ 
    alert("smaller") 
} 


</script> 
+8

@Leon van der Veen - इस कोड में बग है। यदि वर्तमान माह दिसंबर है तो परिणाम गलत है .... इसे जांचें (वर्तमान दिनांक 3/12/2012 और इनपुट दिनांक 23/12/2012) .. कृपया उत्तर पोस्ट करने से पहले परीक्षण करें ... – 999k

+0

मुझे लगता है कि आपको आवश्यकता होगी यह सुनिश्चित करने के लिए कि दोनों तिथियां आईएसओ प्रारूप में हैं YYYY-MM-DD बग से बचने के लिए, toISOString() का उपयोग कर सकते हैं – Loopo

0

अपनी तिथि इनपुट प्रारूप "25-02-2013" में है, तो आप विभाजन का उपयोग कर डीडी, एम एम और YYYY में स्ट्रिंग विभाजित कर सकते हैं() विधि:

var date_string="25-02-2013"; 

var day = parseInt(date_string.split("-")[0]); 
var month= parseInt(date_string.split("-")[1]); 
var year = parseInt(date_string.split("-")[2]); 

parseInt() फ़ंक्शन स्ट्रिंग को एक पूर्णांक में बनाने के लिए प्रयोग किया जाता है। 3 चरों को तब दिनांक() ऑब्जेक्ट के गुणों के विरुद्ध तुलना की जा सकती है।

3

जावास्क्रिप्ट Date ऑब्जेक्ट का उपयोग करना आपके लिए आसान होगा। लेकिन Date ऑब्जेक्ट आपके प्रारूप का समर्थन नहीं करता है, मुझे लगता है कि आपको datemonth और और year प्राप्त करने के लिए '-' के साथ अपनी इनपुट स्ट्रिंग (उदाहरण: 25-02-2013) को पार्स करना होगा और फिर तुलना के लिए Date ऑब्जेक्ट का उपयोग करें।

var x ='23-5-2010'; 
var a = x.split('-'); 
var date = new Date (a[2], a[1] - 1,a[0]);//using a[1]-1 since Date object has month from 0-11 
var Today = new Date(); 
if (date > Today) 
    alert("great"); 
else 
    alert("less"); 
+0

लाइन 3 का उपयोग करना चाहिए 'var date = new date (a [0], a [1] - 1, a [2]) ; – k29

+0

@ k29 संख्या दिनांक वस्तु वर्ष, महीने, दिन के आदेश में तर्क स्वीकार करती है। ओपी की इनपुट स्ट्रिंग के साथ एक [2] साल है इसलिए मेरा कथन सही है। कृपया – 999k

+0

देखें क्षमा करें आप सही हैं। मुझे लगता है कि कोड को आजमाते समय मैंने दूसरे उत्तरों से स्ट्रिंग्स की प्रतिलिपि बनाई है। – k29

12

सही तिथि comparsion और स्वीकार किए जाते हैं जवाब से हल हो गई बग

var q = new Date(); 
var m = q.getMonth(); 
var d = q.getDate(); 
var y = q.getFullYear(); 

var date = new Date(y,m,d); 

mydate=new Date('2011-04-11'); 
console.log(date); 
console.log(mydate) 

if(date>mydate) 
{ 
    alert("greater"); 
} 
else 
{ 
    alert("smaller") 
} 
4

आप अगर एक तारीख एक और से बड़ा होता है देखने के लिए एक सरल तुलना ऑपरेटर का उपयोग कर सकते हैं:

var today = new Date(); 
var jun3 = new Date("2016-06-03 0:00:00"); 

if(today > jun3){ 
    // True if today is on or after June 3rd 2016 
}else{ 
    // Today is before June 3rd 
} 

दूसरे चर में 0:00:00 जोड़ने का कारण यह है कि इसके बिना, यह यूटीसी की तुलना करेगा (ग्रीनविच) समय, जो आपको अवांछित परिणाम दे सकता है। यदि आप समय 0 पर सेट करते हैं, तो यह उपयोगकर्ता के स्थानीय मध्यरात्रि की तुलना करेगा।

0

सबसे महत्वपूर्ण अंक जो की जरूरत है, जबकि तिथि तुलना

  • दोनों तारीखों में एक ही प्रारूप में होना चाहिए कर सही परिणाम प्राप्त करने में याद किया जाना।
  • यदि आप दिनांक समय प्रारूप का उपयोग कर रहे हैं और केवल दिनांक तुलना करना चाहते हैं तो सुनिश्चित करें कि आप इसे संबंधित प्रारूप में रूपांतरित करें।

यहां कोड है जिसका मैंने उपयोग किया था।

  var dateNotifStr = oRecord.getData("dateNotif"); 
      var today = new Date();  
      var todayDateFormatted = new Date(today.getFullYear(),today.getMonth(),today.getDate()); 

      var dateNotif=new Date(dateNotifStr); 
      var dateNotifFormatted = new Date(dateNotif.getFullYear(),dateNotif.getMonth(),dateNotif.getDate()); 

अच्छा, इसे आगे अनुकूलित किया जा सकता है लेकिन इससे आपको समान प्रारूप में तिथियां बनाने के लिए आवश्यक चीज़ों पर स्पष्ट विचार देना चाहिए।

संबंधित मुद्दे