根据日期过滤parse.com中的对象

时间:2016-02-24 21:46:46

标签: swift parse-platform

我使用PFQuery从解析中重新获取数据,就像这样

var downloadQuery = PFQuery(class: "MyDatabase") 

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

//retriving data her
                } 

但有没有办法可以过滤掉一周前创建的对象,或类似的东西?

我使用downloadQuery.whereKey("price", equalTo: "Free")来过滤掉某些对象,但我无法弄清楚如何根据创建对象时过滤掉对象

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:1)

您可以使用Parse的greaterThanlessThangreaterThanOrEqualTolessThanOrEqualTo和日期来过滤您的查询。

例如:

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

lastWeek是一个日期对象,您可以使用@ yesthisisjoe上面的答案来计算。这只会获取当天从一周内创建的对象,因此您的应用端不需要额外的过滤。