2016-02-24 122 views
1

我一個retriving數據從parse使用PFQuery,這樣過濾對象基於日期

var downloadQuery = PFQuery(class: "MyDatabase") 

downloadQuery.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in 

//retriving data her 
       } 

不過是沒有辦法,我可以過濾掉對象的方式創建一個多星期前,或類似的東西?

我已經使用downloadQuery.whereKey("price", equalTo: "Free")篩選出特定的對象,但我無法弄清楚如何篩選出基於日期的對象時,他們創建

回答

1

您可以使用解析的greaterThanlessThangreaterThanOrEqualTolessThanOrEqualTo用日期來過濾查詢。

如:

var downloadQuery = PFQuery(class: "MyDatabase") 
downloadQuery.whereKey("createdAt", lessThanOrEqualTo: lastWeek) 

lastWeek爲Date對象,您可根據使用上述@ yesthisisjoe的回答。這樣只會獲取當天內一週內創建的對象,因此您的應用程序端不需要額外的過濾。

1

您可以通過使用downloadQuery.orderByDescending("createdAt")由日期對結果進行排序開始他們被創建。

然後,你可以這樣做:

let calendar = NSCalendar.currentCalendar() 
let lastWeek = calendar.dateByAddingUnit(.Week, value: -1, toDate: NSDate(), options: []) 

for object in objects { 
    if object.createdAt!.timeIntervalSinceDate(lastWeek).isSignMinus { 
     //it's older than a week, so stop iterating through objects 
     break 
    } 
    //it's within the past week, do something with the object 
}