2012-05-21 4 views
6

Próbuję porównać niektóre terminy dla ParseQuery. Nie daje mi błędów, ale po prostu nie filtruje dat. Oto niektóre kodu:Porównaj daty z Parse.com

if(dateFrom!=null){ 
     query.whereLessThanOrEqualTo("from", dateFrom); 
    } 
    if(dateTo!=null){ 
     query.whereGreaterThanOrEqualTo("to", dateTo); 
    } 

data jest java.util.Date (nie SQL)

Date dateFrom = new Date(fromYear,fromMonth,fromDay,fromHour,fromMinute); 

    Date dateTo = new Date(toYear,toMonth,toDay,toHour,toMinute); 

kiedy patrzę na moich ParseObjects na parse.com widzę obiekty dostał dateFrom i dateTo .

Czy ktoś może mi powiedzieć, dlaczego nie filtruje? Dziękujemy

+0

Czy kiedykolwiek znalazłeś odpowiedź na to pytanie? –

+0

Jeszcze nie. Po prostu odfiltrowuję to na teraz Poproszę o to do ludzi w Parse. Jeśli dostanę odpowiedź, umieszczę ją tutaj – dumazy

+1

Jeśli nie znalazłeś odpowiedzi na to: Wierzę, że twoje ograniczenia kwerend są uporządkowane źle, powinieneś mieć mniejszy lub równy na 'dateTo' i większa lub równa wartości 'dateFrom'. –

Odpowiedz

3

Testowałem, że porównania danych działają z pakietem JavaScript SDK.

(słowo to podstawowy model parse)

var d = new Date(); 
var word = new Word();   
word.set("dateTo", new Date (2012, 01, 01)); 
word.save();   

var dateTo = new Date (2012, 12, 31); 

var query = new Parse.Query(Word); 
query.greaterThan("dateTo", dateTo); 

query.find({ 
    success: function(results) { 
    alert("Successfully retrieved " + results.length + " scores."); 
    }, 
    error: function(error) { 
    alert("Error: " + error.code + " " + error.message); 
    } 
}); 

Jako obejście zawsze można przenieść swoje dni na sekundy jak Date.getTime() i wykorzystać do porównywania liczb całkowitych.

Pozdrawiam