2011-12-26 2 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

몽고의 날짜 개체는 자바 스크립트 개체이며, 달은 0부터 시작됩니다 (월 = 0, 12 월 = 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)가 없기 때문에 적어도 3 경우에, 당신은 시작하기에 유효하지 않은 날짜를 공급하고 있습니다 - 그것은 단지 JS 스펙은 예의 바르고 tranlates입니다입니다 그게 "내년에"당신을 위해 그것은 전혀 작동합니다.

+0

오 ... 정말 고마워요. PHP처럼 작동 할 것인가? - $ from = new MongoDate ($ startDate); $ to = 새로운 MongoDate ($ endDate); // 양쪽 모두 strtotime(); $ cursor = $ summary-> find (array ('date'=> array ('$ gt'=> $ from, '$ lt'=> $ to))); –

+0

아니요. PHP의 달은 1 개월입니다. 둘 사이에서 조정해야합니다. –