Max Date and Min Date

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

console.log(new Date(maxDate.getTime()).toString());
	==> Fri Sep 12 275760 17:00:00 GMT-0700 (Pacific Daylight Time)

console.log(new Date(maxDate.getTime() - 1).toString());
	==> Fri Sep 12 275760 16:59:59 GMT-0700 (Pacific Daylight Time)

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

console.log(new Date(minDate.getTime()).toString());
	==> Mon Apr 19 -271821 16:07:02 GMT-0752 (Pacific Daylight Time)

console.log(new Date(minDate.getTime() + 1).toString());
	==> Mon Apr 19 -271821 16:07:02 GMT-0752 (Pacific Daylight Time)

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

年の入力を行う際に、入力規制として最小と最大をどう決めるかだが、ひとつのアイディアとして、1000年から3000年までとする。 JavascriptのDateオブジェクトでは問題なく扱える。MySQLのdatetimeフィールドで問題ない。