"날짜"필드가 startDate와 endDate 사이에있는 모든 레코드를 가져 오려고합니다.날짜로 필터링 할 때 Mongodb 시간대 문제
나는이와 DB를 조회하고 (오늘까지 달의 처음부터 기록을 얻을 수 있습니다) 날짜
var startDate = new Date(2017,09,1);
var endDate = new Date(2017,09,7);
//console.log(startDate) = Sun Oct 01 2017 00:00:00 GMT-0300 (BRT)
//console.log(endDate) = Sat Oct 07 2017 00:00:00 GMT-0300 (BRT)
Sale.find({date:{"$gte":startDate,"$lt":endDate}},function(err, sales){
}
10월 2일 및 10/07과 반환 사이의 날짜와
기록 만 기록을 10/01은 반환되지 않습니다. 여기없는 레코드의 날짜 필드는 다음과 같습니다
"date": {
"$date": "2017-10-01T23:00:00.000Z"
}
나는 그것이 차이 (시간대 등)을 만들 것입니다 있는지 확인하기 위해 23 시간을 설정하지만하지 않았다.
startDate를 9 월 30 일 23 시로 설정하면 아무 것도 표시되지 않습니다. 시간 22, 21, 아무것도. startDate가 9 월 30 일, 20시, 빙고가되면 기록이 반환됩니다.
이것은 아마도 시간대 문제 일 수 있지만 위치 및 방법을 식별 할 수는 없습니다.
,'새로운 날짜 (2017,09,1)를 ;'는'Wed'01 Nov 01 2017 00:00:00 GMT-0400 (EDT)'을 반환합니다. 왜냐하면 0은 1 월이기 때문입니다. 그러나 그것은 당신이보고있는 행동을 설명하지는 않습니다. –
데이터가 MongoDB에 쓰여지는 시간대는 무엇입니까? UTC 또는 지역? –
로컬이지만 새로운 Date() 객체도 그렇게해야합니까? 나는 날짜의 console.log로 질문을 갱신했다. –