मुझे उस महीने के पूर्णांक में महीना नाम बदलने की आवश्यकता है (और एक बड़े स्विच स्टेटमेंट से बचना चाहते हैं)। कोई विचार?जावास्क्रिप्ट में कुछ भी है जो "अगस्त" से 8 में परिवर्तित कर सकता है?
उत्तर
बस, उस महीने में एक तारीख बनाने उसे पार्स और इस तरह
function convertMonthNameToNumber(monthName) {
var myDate = new Date(monthName + " 1, 2000");
var monthDigit = myDate.getMonth();
return isNaN(monthDigit) ? 0 : (monthDigit + 1);
}
alert(convertMonthNameToNumber("August")); //returns 8
alert(convertMonthNameToNumber("Augustsss")); //returns 0 (or whatever you change the default too)
alert(convertMonthNameToNumber("Aug")); //returns 8 - Bonus!
alert(convertMonthNameToNumber("AuGust")); //returns 8 - Casing is irrelevant!
आप अपने कोड में एक सरणी (नाम/vale जोड़े) बना सकते हैं क्योंकि यह केवल 12 महीने है और इसे करने के लिए एक फ़ंक्शन लिखें।
var months = {August: 8};
var monthtbl = { 'January': 1, 'February': 2, /* ... */, 'August', 8, /* ... */, 'December': 12 };
// ...
var monthNumber = monthtbl[monthName];
संपादितgetMonth()
का उपयोग, लेकिन यह तरीके से करना @Chad पता चलता है :-)
यदि आप इसे वर्णमाला के मामले में असंवेदनशील बनाना चाहते हैं, तो आप ऑब्जेक्ट ("monthtbl") को सभी लोअर-केस बनायेंगे और फिर
का उपयोग करेंvar monthNumber = monthtbl[monthName.toLowerCase()];
+1 यह दृष्टिकोण है! – Achilles
यह ठोस है। ब्याज से: मैं इस मामले को असंवेदनशील कैसे बनाऊंगा? यदि मुझे उपयोगकर्ता इनपुट को पार्स करने की ज़रूरत है? –
एफडब्ल्यूआईडब्ल्यू, यदि आप इसे कई बार कर रहे हैं तो यह स्पष्ट रूप से तेज़ होगा। –
एक अन्य विकल्प सिर्फ वहाँ बाहर निकालने के लिए, आप एक सरणी और $.inArry()
, इस तरह इस्तेमाल कर सकते हैं:
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
function getMonth(name) {
return $.inArray(name, months) +1;
}
, अपने पिछले सवाल से पहचानने jQuery के यूआई datepicker वस्तु से सीधे तारीख खींच हालांकि हो सकता है बहुत आसान हो।
function monthToNumber(month) {
return new Date(Date.parse("1 "+month)).getMonth()+1;
}
यहाँ मूल्य महीने नाम मूल्य
var month1 = value;
month1 = month1.toLowerCase();
var months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
month1 = months.indexOf(month1);
ओपी और अन्य पाठकों के लिए इसे और अधिक उपयोगी बनाने के लिए कृपया संक्षेप में अपने उत्तर की व्याख्या करें। –
- 1. क्या कुछ भी है जो मैं मूंछ से नहीं कर सकता?
- 2. MATLAB में कोई फ़ंक्शन बनाया जा सकता है जो कुछ भी नहीं देता है?
- 3. एक्सएसएलटी में क्या मैं कुछ भी नहीं कर सकता?
- 4. जावास्क्रिप्ट में [5,6,8,7] [1,2] = 8 क्यों है?
- 5. टीएमपी: टेम्पलेट कोड कैसे लिखना है जो किसी भी संरचना को टुपल में परिवर्तित करता है?
- 6. क्या मैं स्मृति में कुछ भी एक्सेस कर सकता हूं?
- 7. mysql5 - चूंकि 'रूट' डेटाबेस नहीं बना सकता है या कुछ भी कर सकता है (एक्सेस अस्वीकृत)
- 8. रूबी कुछ भी वापस नहीं कर सकता?
- 9. सर्वर साइड ब्राउज़र जो जावास्क्रिप्ट को निष्पादित कर सकता है
- 10. पिक्सम ग्राफिक्स के संदर्भ में क्या कर सकता है जो wxPython नहीं कर सकता है?
- 11. कुछ भी है कि खाली
- 12. क्या कोई जावास्क्रिप्ट पुस्तकालय है जो ब्राउज़र में टर्मिनल आउटपुट प्रस्तुत कर सकता है?
- 13. वहाँ जो कुछ इस तरह करता है हास्केल में एक समारोह है कि अगर किसी को भी पता है हास्केल
- 14. मैं पर्ल में एक इनपुट फ़ाइल को यूटीएफ -8 एन्कोडिंग में कैसे परिवर्तित कर सकता हूं?
- 15. लैम्बडास क्रियाओं को क्रियाओं में परिवर्तित क्यों कर सकता है?
- 16. क्या कक्षा में सुपर() को कॉल करना बुरा व्यवहार है जो कुछ भी नहीं बढ़ाता है?
- 17. क्या कोई संकलक है जो regexp को fsm में परिवर्तित कर सकता है? या मानव शब्दों में परिवर्तित कर सकते हैं?
- 18. यूनिकोड से चरित्र को कैसे परिवर्तित करें जो जावास्क्रिप्ट का उपयोग कर वेब पेज में प्रदर्शित होता है?
- 19. प्रोग्राम जो एचटीएमएल को छवि में परिवर्तित करता है
- 20. डीबग जो जावास्क्रिप्ट रीडायरेक्ट कर रहा है
- 21. System.gc() कुछ भी करता है
- 22. क्या वी 8 जावास्क्रिप्ट इंजन में जीआईएल है?
- 23. minHeight कुछ भी करता है?
- 24. Node.js console.log() कुछ भी लॉगिंग नहीं कर रहा है
- 25. एक्सएएमपीपी/डब्ल्यूएएमपी/जो कुछ भी है: अपाचे सुपर धीमी गति से चल रहा है
- 26. एक अच्छा जावास्क्रिप्ट ढांचा जो आईई 6-8 में CSS3 समर्थन जोड़ता है और आईई 9 में CSS3 गायब है?
- 27. मैं जावास्क्रिप्ट ऑब्जेक्ट नाम कैसे सेट कर सकता हूं जो console.log में वापस आ जाता है?
- 28. सी # में टाइप 'स्ट्रिंग' को 'System.Web.HtmlString' में पूर्ण रूप से परिवर्तित नहीं कर सकता है?
- 29. node.js में डेटा को utf-8 में कैसे परिवर्तित करें?
- 30. क्या डेल्फी में कोई घटना है जो ActiveControl में परिवर्तित होने पर आग लगती है?
यह एक अच्छा विचार है! – Pointy
मुझे यह पसंद है। पूर्णता के लिए, यदि मैं एक अवैध महीने (जैसे "Äugust") पास करता हूं तो क्या होगा? –
उल्लेखनीय है कि * Date.parse() * तारीख का प्रतिनिधित्व करने वाली संख्या को वास्तविक दिनांक वस्तु नहीं देता है। इसके अलावा * getMonth() * * 7 *, * * * * वापस नहीं आएगा क्योंकि महीनों शून्य-आधारित हैं। –