2014-07-21 21 views
0

我需要從DB拉進行查詢一天如何使用日期

var i_sDate = "2014-06-21"; // (user input) 
var startDate = new Date(); 
var month = parseInt(i_sDate.substr(5,2)) - 1; 
var day = i_sDate.substr(8,2); 
startDate.setFullYear(i_sDate.substr(0,4), month, day); 
startDate.setHours(0, 0, 0, 0); 

var endDate = new Date(); 
endDate.setFullYear(i_sDate.substr(0,4), month, day); 
endDate.setHours(23, 59, 59, 0); 

var query = {start_time:{"$gte": "ISODate('" + startDate.toISOString() + "')", "$lt": "ISODate('" + endDate.toISOString() + "')"}}; 
var tableInfo = Users_Collection.find(query).fetch(); 

console.log(query); 
當我打印

所有行「查詢」它看起來不錯,但我沒有得到任何結果可言,我把相同的信息直接放在數據庫上,我得到了預期的結果。這似乎是我以錯誤的方式構建查詢,任何建議?????

在此先感謝!

回答

2

您應該直接在查詢中使用Date對象。試試這個:

var query = {start_time: {$gte: startDate, $lt: endDate}}; 

它也像你缺少一個右}

+0

我已經關閉了}(我沒有粘貼在這裏)。我嘗試了你的建議,但沒有奏效。日期對象打印「Sun Jun 22 2014 00:00:00 GMT-0400(EDT)」可能是這個問題嗎? –

+0

日期始終作爲字符串打印到控制檯,因此不存在這個問題。這可能是因爲你只有錯誤的日期,你的數據庫沒有正確的文檔等。你總是可以對日期進行硬編碼來測試查詢。例如'var endDate = new Date('6-22-2014')'或其他適合你的情況。 –

相關問題