न्यूनतम और अधिकतम तिथि


128

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

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

"युगांतर के समय" (1970-01-01 से 00:00:00 UTC + 00) का उत्तर सबसे अच्छा होगा।


कॉपी / पेस्ट उत्तर के लिए: stackoverflow.com/questions/27093130/…
Kieveli

जवाबों:


177

से कल्पना, §15.9.1.1 :

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

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

ECMAScript दिनांक वस्तुओं द्वारा समर्थित समय की वास्तविक सीमा थोड़ी छोटी है: -100,000,000 दिन से 100,000,000 दिनों तक 01 जनवरी, 1970 UTC की शुरुआत में आधी रात के सापेक्ष मापा जाता है। यह 01 जनवरी, 1970 यूटीसी के दोनों ओर 8,640,000,000,000,000 मिलीसेकंड की सीमा देता है।

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

तीसरा पैराग्राफ सबसे अधिक प्रासंगिक है। उस पैराग्राफ के आधार पर, हम प्रति new Date(-8640000000000000)सप्ताह प्रति सटीक सटीक तारीख प्राप्त कर सकते हैं , जो मंगलवार, 20 अप्रैल, 271,821 BCE (BCE = कॉमन एरा से पहले , जैसे, वर्ष -271,821) है।


1
यह एक .MIN isMax क्षेत्र को .net की तरह प्रेरित करता है ... gist.github.com/Queue Hammer
cb9bf736b81029d65485fb30ad01918d

1
इसीलिए यह -922337203685474780808L के साथ काम नहीं करता है ... मैं तारीख बदलने के बाद भी इसे बदल सकता हूं।
डेडमैनएन

1
मुझे नहीं पता कि लोग किस बारे में शिकायत कर रहे हैं, यह मेरे लिए ठीक काम करता है। BTW मुझे आश्चर्य है कि अगर किसी भी तरह से यह उल्टा काम करता है (यानी बीसीई की तारीख में प्रवेश करने और एक नकारात्मक के रूप में बाहर निकलने वाले सेकंड सेकंड में)?
मार्क सीगोए

1
@MarkSeagoe - Date.UTC(-271821, 3, 20)रिटर्न -8640000000000000। :-)
टीजे क्राउडर

नई तिथि ('275760-9-13 05:30:00')
एशटसन

52

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

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


-8

जैसा कि आप देख सकते हैं, 01/01/1970 रिटर्न 0, जिसका मतलब है कि यह सबसे कम संभव तारीख है।

new Date('1970-01-01Z00:00:00:000') //returns Thu Jan 01 1970 01:00:00 GMT+0100 (Central European Standard Time)
new Date('1970-01-01Z00:00:00:000').getTime() //returns 0
new Date('1970-01-01Z00:00:00:001').getTime() //returns 1

9
आपके जवाब का क्या मतलब है? यह मूल प्रश्न का क्या जवाब देता है?
मैक्सर्ट

1/1/1970 सबसे कम संभव तारीख नहीं है। 1/1/1970 से पहले की तारीख प्राप्त करने के लिए आप एक ऋणात्मक संख्या पास कर सकते हैं।
inejwstine
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.