2016-09-21 8 views
0

次のコードを検討してください。なぜmonthが1ずつ増加するのですか?mongodbはDateコンストラクタの0ベースのインデックスを補正しますか?

> var myDate = new Date(2016,01,01); 
> db.testDate.insert({"aDate": myDate}); 
WriteResult({ "nInserted" : 1 }) 
> db.testDate.find(); 
{ "_id" : ObjectId("57e2a5a46d5f3aabab82c08d"), "aDate" : ISODate("2016-02-01T05:00:00Z") } 
> var myDate = new Date(2016,00,01); 
> db.testDate.insert({"aDate": myDate}); 
WriteResult({ "nInserted" : 1 }) 
> db.testDate.find(); 
{ "_id" : ObjectId("57e2a5a46d5f3aabab82c08d"), "aDate" : ISODate("2016-02-01T05:00:00Z") } 
{ "_id" : ObjectId("57e2ab016d5f3aabab82c08e"), "aDate" : ISODate("2016-01-01T05:00:00Z") } 
> 

答えて

0

new Date(2016,01,01);は、ISODateラッパーを使用してDateオブジェクトを作成します。これは現在のタイムゾーンで日付を受け取り、ISODateラッパーはそれをUTC時刻に変換します。

また、月の範囲は0-11です。 0は1月、11は12月です。したがって、2016年1月1日を保存するには、var myDate = new Date(2016,0,1);

のコンストラクタを使用してDateオブジェクトを作成することもできます。

> var myDate = new ISODate("2016-01-01"); 
> myDate 
ISODate("2016-01-01T00:00:00Z") 
> var myDate = new ISODate(); 
> myDate 
ISODate("2016-09-21T16:24:32.153Z") 
関連する問題