2010-06-25 14 views
9

मैं निम्नलिखित कोड हैजावास्क्रिप्ट तारीख वस्तुओं ब्रिटेन

datePicker.change(function(){ 
     dateSet = datePicker.val(); 
     dateMinimum = dateChange(); 
     dateSetD = new Date(dateSet); 
     dateMinimumD = new Date(dateMinimum); 
     if(dateSetD<dateMinimumD){ 
      datePicker.val(dateMinimum); 
      alert('You can not amend down due dates'); 
     }  
    }) 

dateSet = "2010/01/07" dateMinimum = "23/7/2010"

दोनों कर रहे हैं ब्रिटेन प्रारूप तिथियाँ। जब दिनांक ऑब्जेक्ट्स की तुलना दिनांक दिनांक से की जाती है तो तिथि से कम होना चाहिए न्यूनतम लेकिन यह नहीं है। मुझे लगता है कि यह उन तथ्यों के साथ है जो मैं यूके तिथियों डीडी/एमएम/वाई वाई का उपयोग कर रहा हूं। इस काम को पाने के लिए मुझे क्या बदलने की ज़रूरत होगी?

+3

ब्रिटेन की तारीखें "डीडी/एमएम/वाईवाई" नहीं हैं "एमएम/डीडी/वाईवाई"। – ChrisF

+0

उन दिनों में से एक बन गया। अद्यतन प्रश्न – Linda

उत्तर

11

को सही क्रम में इन भागों दर्रा जावास्क्रिप्ट Date निर्माता उस रूप में तार पार्स नहीं करता है (चाहे यूके या यूएस प्रारूप में)। जानकारी के लिए the spec देखें, लेकिन आप हिस्सा द्वारा दिनांक भाग का निर्माण कर सकते हैं:

new Date(year, month, day); 

MomentJS लचीलेपन दिनांक से निपटने के लिए उपयोगी हो सकता है। (यह उत्तर पहले this lib से जुड़ा हुआ है, लेकिन इसे लंबे समय तक नहीं रखा गया है।)

5
  • स्प्लिट दिन, महीने में तिथि, dateSet.split('/')
  • का उपयोग कर साल भागों Date constructor.
0

हां, आपके द्वारा उपयोग किए जा रहे दिनांक प्रारूप में समस्या है। यदि आप डेट प्रारूप सेट नहीं कर रहे हैं तो उपयोग की जाने वाली डिफ़ॉल्ट तिथि 'mm/dd/yy है। तो आप निम्नलिखित के रूप में अपनी पसंदीदा तिथि वह स्वरूप स्थापित करना चाहिए जब आप इसे बनाने के लिए जब आप दिनांक पिकर बनाएँ:

$(".selector").datepicker({ dateFormat: 'dd/mm/yyyy' }); 

या आप इसे बाद में सेट कर सकते हैं के रूप में:

$.datepicker.formatDate('dd/mm/yyyy'); 
0

जब आप एक तारीख बनाने की कोशिश वस्तु:

new Date(year, month, day, hours, minutes, seconds, milliseconds) 

उदाहरण:

dateSetD = new Date(dateSet.year, dateSet.month, dateSet.day); 

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

+0

जावास्क्रिप्ट में पाइथन-शैली कीवर्ड तर्क नहीं हैं। उदाहरण में आप जो कर रहे हैं वह एक आकस्मिक वैश्विक चर 'वर्ष' को 'dateSet.year' असाइन कर रहा है! – bobince

12

यह है कि कैसे मैं यह कर समाप्त हो गया है:

var lastRunDateString ='05/04/2012'; \\5th april 2012 
var lastRunDate = new Date(lastRunDateString.split('/')[2], lastRunDateString.split('/')[1] - 1, lastRunDateString.split('/')[0]); 

नोट महीने अनुक्रमण 0-11 से है।

7
var dateString ='23/06/2015'; 
var splitDate = dateString.split('/'); 
var month = splitDate[1] - 1; //Javascript months are 0-11 

var date = new Date(splitDate[2], month, splitDate[0]); 
संबंधित मुद्दे