সর্বনিম্ন এবং সর্বাধিক তারিখ


128

আমি ভাবছিলাম যে জাভাস্ক্রিপ্ট Dateঅবজেক্টের জন্য অনুমোদিত সর্বনিম্ন এবং সর্বাধিক তারিখ । আমি খুঁজে পেয়েছি যে সর্বনিম্ন তারিখটি 200000 বিসি এর মতো কিছু, তবে আমি এটি সম্পর্কে কোনও রেফারেন্স পাইনি।

উত্তর কি কেউ জানে? আমি কেবল আশা করি এটি ব্রাউজারের উপর নির্ভর করে না।

"যুগের সময়" এর একটি উত্তর (1970-01-01 00:00:00 ইউটিসি + 00 থেকে = মিলিসেকেন্ড) সেরা হবে।


: একটি কপি জন্য / পেস্ট উত্তর stackoverflow.com/questions/27093130/...
Kieveli

উত্তর:


177

স্পেক থেকে , .915.9.1.1 :

একটি ডেট অবজেক্টে এমন একটি সংখ্যা থাকে যা নির্দিষ্ট সময়ে তাত্ক্ষণিকভাবে একটি মিলিসেকেন্ডের মধ্যে নির্দেশ করে। এই জাতীয় সংখ্যাকে একটি সময় মান বলা হয়। একটি সময় মান ন্যানও হতে পারে, ইঙ্গিত করে যে তারিখ অবজেক্ট নির্দিষ্ট সময়ের তাত্ক্ষণিকভাবে প্রতিনিধিত্ব করে না।

সময়টি 01 ই জানুয়ারি, 1970 ইউটিসি থেকে ইসিএমএসক্রিপ্টে মিলি সেকেন্ডে পরিমাপ করা হয়। সময়ে মান লিপ সেকেন্ড এড়ানো হয়। ধারণা করা হয় যে এখানে প্রতিদিন 86,400,000 মিলিসেকেন্ড রয়েছে। ইসমাস্ক্রিপ্ট নম্বর মানগুলি inte9,007,199,254,740,992 থেকে 9,007,199,254,740,992 পর্যন্ত সমস্ত পূর্ণসংখ্যার প্রতিনিধিত্ব করতে পারে; এই পরিসীমাটি 01 জানুয়ারী, 1970 ইউটিসি থেকে আগাম বা পিছনে, প্রায় 285,616 বছরের মধ্যে যে কোনও তাত্ক্ষণিক সময়ের জন্য মিলিসেকেন্ড যথার্থতার জন্য সময় পরিমাপ করতে যথেষ্ট।

ইসমাস্ক্রিপ্ট তারিখের বিষয়গুলি দ্বারা সমর্থিত সময়ের প্রকৃত পরিসরটি কিছুটা ছোট: ঠিক –100,000,000 দিন থেকে 100,000,000 দিন পরিমাপ করা হয় 01 জানুয়ারী, ইউটিসির শুরুতে মধ্যরাতের তুলনায়। এটি 01 জানুয়ারী, 1970 ইউটিসির উভয় পক্ষকে 8,640,000,000,000,000,000 মিলিসেকেন্ডের পরিসীমা দেয়।

01 জানুয়ারী, 1970 সালের মধ্যরাতের ঠিক মুহূর্তটি ইউটিসি +0 দ্বারা প্রতিনিধিত্ব করা হয়।

তৃতীয় অনুচ্ছেদটি সর্বাধিক প্রাসঙ্গিক। সেই অনুচ্ছেদের উপর ভিত্তি করে, আমরা new Date(-8640000000000000)বিশদের জন্য যথাযথ প্রারম্ভিক তারিখটি পেতে পারি , যা 20 এপ্রিল মঙ্গলবার, 271,821 বিসিই (বিসিই = সাধারণ যুগের আগে , যেমন, বছর -271,821))


1
এটি নেট এর মতো একটি ইসমিন ইজ ম্যাক্স ফিল্ডকে অনুপ্রাণিত করেছে ... gist.github.com/QueueHammer/cb9bf736b81029d65485fb30ad01918d
কুইউহ্যামার

1
সে কারণেই এটি -9223372036854775808L এর সাথে কাজ করে না ... এমনকি আমি তারিখে এটি পরিবর্তন করেও গবেষকটি পরিসরের মান থেকে ইতিবাচক প্রত্যাবর্তন করে।
মৃতম্যানএন

1
আমি জানি না লোকে কী অভিযোগ করছে, এটি আমার পক্ষে ঠিক কাজ করে। বিটিডাব্লু আমি ভাবছি যে এর কোনও উপায় যদি বিপরীতভাবে কাজ করে (যেমন বিসিই তারিখে প্রবেশ করা এবং যুগের সেকেন্ডগুলি নেতিবাচক আন্ত হিসাবে পপআপ করা)?
মার্ক সিগোয়ে

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 এর আগে একটি তারিখ পেতে একটি নেতিবাচক নম্বর পাস করতে পারেন।
অজ্বস্টাইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.