जावास्क्रिप्ट दिनों और महीनों को अलग तरह से क्यों मानता है?


42

मैंने देखा है कि जावास्क्रिप्ट में, बनाते समय Date, महीने शून्य आधारित होते हैं, और दिन नहीं होते हैं।

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

var foo = new Date(2012, 1, 1)

1 फरवरी 2012 का उत्पादन करता है

ऐसा क्यों है?


6
months = ['Jan', 'Feb',..., 'Nov', 'Dec']; month = months[date.getMonth()];
zzzzBov

जवाबों:


50

सबसे अधिक संभावना है कि यह विचार है कि महीनों को महीनों के नामों की एक सूची में एक सूचकांक के रूप में माना जाता है, जबकि दिन बस "गिने" जाते हैं।


21
जहां यह एक उत्तर बिंदु से समझ में आता है, यह सोचने के लिए पागल है कि यह तर्क कितने लंबे समय से है और मैंने पहले कभी इस पर सवाल नहीं उठाया।
rlemon

2
@rlemon तथ्य यह है कि आपने उस तर्क पर कभी सवाल नहीं उठाया है, केवल यह साबित करने से पहले कि यह समझ में आता है :)
dasblinkenlight

14
FWIW, मैंने कभी नहीं सोचा था कि यह बहुत समझ में आता है। जावास्क्रिप्ट में प्रसंस्करण की तारीखें हमेशा कुछ ऐसी होती थीं, जो मुझे झकझोर देती थीं, क्योंकि मैं आमतौर पर इस तरह की चीजों को भूल जाता था, जब तक कि मैं अजीब परिणाम डिबग करना शुरू नहीं कर देता।
FrustratedWithFormsDesigner

2
FWIW, मैं एक फ्रंट एंड डेवलपर नहीं हूं और अक्सर जावास्क्रिप्ट से तारीखों से निपटने के लिए कभीnew Date().getTime()
rlemon

20
जब यह जावास्क्रिप्ट की बात आती है, "यही कारण है कि उन्होंने ऐसा किया" और "यह एक अच्छा अर्थ है" दो ऐसी चीजें हैं जो आप शायद ही कभी एक साथ सुनते हैं।
ट्रिडस

14

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

JDK API v1.0.2: Date.getMonth ()


6
और जावा कल्पना सी tm संरचना को दर्शाती है। यह भी देखें stackoverflow.com/questions/344380/...

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