2012-07-17 15 views
87

मैं सोच रहा था कि जावास्क्रिप्ट Date ऑब्जेक्ट के लिए न्यूनतम और अधिकतम तिथि कौन सा है। मैंने पाया कि न्यूनतम तिथि 200000 बी.सी. जैसी है, लेकिन मुझे इसके बारे में कोई संदर्भ नहीं मिला।न्यूनतम और अधिकतम दिनांक

क्या किसी को जवाब पता है? मुझे उम्मीद है कि यह ब्राउज़र पर निर्भर नहीं है।

"युग टाइम" में एक जवाब (= 1 9 70-01-01 00:00:00 यूटीसी + 00 से मिलीसेकंड) सबसे अच्छा होगा।

+0

एक कॉपी/पेस्ट उत्तर के लिए: http://stackoverflow.com/questions/27093130/how-to-get-the-minimum-and-maximum-date – Kieveli

उत्तर

129

the spec, §15.9.1.1 से:

एक दिनांक वस्तु एक संख्या एक millisecond के भीतर करने के लिए समय में एक खास पल का संकेत होता है। इस तरह की संख्या को एक समय मूल्य कहा जाता है। एक समय मान भी NaN हो सकता है, यह दर्शाता है कि दिनांक वस्तु समय के एक विशिष्ट तत्काल का प्रतिनिधित्व नहीं करती है।

समय 01 जनवरी, 1 9 70 यूटीसी के बाद से मिलीसेकंड में ईसीएमएस्क्रिप्ट में मापा जाता है। समय मूल्यों में लीप सेकंड अनदेखा कर रहे हैं। यह माना जाता है कि प्रति दिन बिल्कुल 86,400,000 मिलीसेकंड हैं। ECMAScript संख्या मान -9,007,199,254,740,992 से 9,007,199,254,740,992 तक सभी पूर्णांक का प्रतिनिधित्व कर सकते हैं; यह सीमा किसी भी तत्काल के लिए मिलीसेकंड परिशुद्धता को मापने के लिए पर्याप्त है जो लगभग 285,616 वर्षों के भीतर है, या तो आगे या पिछड़ा, 01 जनवरी, 1 9 70 यूटीसी से।

ईसीएमएस्क्रिप्ट दिनांक वस्तुओं द्वारा समर्थित समय की वास्तविक सीमा थोड़ी छोटी है: वास्तव में -100,000,000 दिन 100,000,000 दिन 01 जनवरी, 1 9 70 की शुरुआत में मध्यरात्रि के सापेक्ष मापा जाता है। यह 01 जनवरी, 1 9 70 यूटीसी के दोनों तरफ 8,640,000,000,000,000 मिलीसेकंड की एक श्रृंखला देता है।

01 जनवरी, 1 9 70 की शुरुआत में मध्यरात्रि का सटीक क्षण यूटीसी मूल्य +0 द्वारा दर्शाया गया है।

तीसरा अनुच्छेद सबसे प्रासंगिक है। उस अनुच्छेद के आधार पर, हम new Date(-8640000000000000) से प्रति विशिष्ट सटीक प्रारंभिक तिथि प्राप्त कर सकते हैं, जो मंगलवार, 20 अप्रैल, 271,821 बीसीई (बीसीई = Common Era से पहले, उदाहरण के लिए वर्ष -271,821) है।

+8

मुझे लगता है कि यह ज्यादातर मामलों के लिए पर्याप्त होगा ... :) –

+62

अब मुझे उम्मीद है कि कोई व्यक्ति नहीं सोचेंगे कि दुनिया 13 सितंबर, 275760 को समाप्त होगी ... – MaxArt

+11

@MaxArt यह मेरा 275745 वां जन्मदिन होगा, इसलिए मुझे यकीन है कि उम्मीद नहीं है ! –

12

टीजे के उत्तर को बढ़ाने के लिए, न्यूनतम/अधिकतम मानों से अधिक एक अमान्य तिथि उत्पन्न करता है।

let maxDate = new Date(8640000000000000); 
 
let minDate = new Date(-8640000000000000); 
 

 
console.log(new Date(maxDate.getTime()).toString()); 
 
console.log(new Date(maxDate.getTime() - 1).toString()); 
 
console.log(new Date(maxDate.getTime() + 1).toString()); // Invalid Date 
 

 
console.log(new Date(minDate.getTime()).toString()); 
 
console.log(new Date(minDate.getTime() + 1).toString()); 
 
console.log(new Date(minDate.getTime() - 1).toString()); // Invalid Date

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