從閱讀docs,我的印象是ISODate只是包裝了Date構造函數。然而,我似乎無法讓它們在過去很遠很遠的日期正常工作。例如:MongoDB ISODate()給出了不同於Date()的結果?
new Date(-8640000000000000); // Mon Apr 19 -271821 18:00:00 GMT-0600 (Mountain Daylight Time)
new Date(-8640000000000000).toISOString(); // -271821-04-20T00:00:00.000Z
ISODate(new Date(-8640000000000000).toISOString()); // Wed Sep 03 2719 18:00:00 GMT-0600 (Mountain Daylight Time)
爲什麼第一個日期和最後一個日期有所不同?我可以看到,我清楚地東西,某處。另外,Mongo支持的最小和最大日期是多少?
編輯:有趣的是,這個工程按預期:
new Date(new Date(-8640000000000000).toISOString()); // Mon Apr 19 -271821 18:00:00 GMT-0600 (Mountain Daylight Time)
這只是一個創建某種最低日期的數字(具體來說,是4月19日,-271821日期)。自那以後,我一直在努力,但很好奇爲什麼會發生這種行爲。 –
你需要1970年之前的日期,毫秒精度?我建議使用'新日期(0)',即'ISODate(「1970-01-01T00:00:00Z」)' – JeremyK
這是行得通的,是的。但是我從那以後改變了我的方法。這個問題更多的是出於對這種差異的好奇心,而不是試圖解決我的問題。 –