2011-12-26 27 views
0

なぜmongoDBが間違った日付を作成するのですか?Mongo間違った日付

> start=new Date(2011,12,23)  
"Mon Jan 23 2012 00:00:00 GMT+0000 (UTC)" 
> start=new Date(2011,12,24) 
"Tue Jan 24 2012 00:00:00 GMT+0000 (UTC)" 
> start=new Date(2011,13,24) 
"Fri Feb 24 2012 00:00:00 GMT+0000 (UTC)" 
> start=new Date(2011,11,24) 
"Sat Dec 24 2011 00:00:00 GMT+0000 (UTC)" 
> 

答えて

4

Mongoの日付オブジェクトはJavaScriptの日付オブジェクトであり、その月は0ベース(Jan = 0、Dec = 11)です。

2011/12/23 is actually month #1 (12-11) of year 2011+1 -> Jan 23/2012 
2011/12/24 is actually month #1 (12-11) of year 2011+1 -> Jan 24/2012 
2011/13/24 is actually month #2 (13-11) of year 2011+1 -> Feb 24/2012 
etc... 

とポイント以外

は、カレンダーには月13が存在しないので、少なくとも第三の場合には、あなたが開始するために無効な日付を供給している - それが唯一のJS仕様が丁寧でtranlatesありますあなたのために「来年」にそれはまったく動作します。

+0

ああ...ありがとうございます。それはPHPのように動作しますか? - $ from = new MongoDate($ startDate); $ to =新しいMongoDate($ endDate); //両方ともstrtotime()から作成しました。 $ array = '$'、> $>)>);};}}};}}};}};}}}; –

+0

いいえ、PHPの月は1から始まります。あなたは2つの間で調整する必要があります。 –

関連する問題