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フィールドで問題ない。