如何使用Swift在Parse中按日期偏移查询?

时间:2016-01-27 00:39:29

标签: ios swift parse-platform

我想在Parse查询上设置约束,该约束需要生日(日期),并且只收集10年内的结果。

所以,如果日期类似于(1954-01-10 07:00:00 +0000) 那么我想得到1944年到1964年的所有记录。

有没有办法使用Parse查询代码执行此操作?

或者, 我是否必须获取日期,然后使用swift代码将其抵消10年,然后写出类似这样的内容

let currentUserBirthday = PFUser.currentUser()?.objectForKey("birthday")!

// set date 10 years greater and lower than currentUserBirthday
let datePlus10 =   // add 10 years to date
let dateMinus10 =  // subtract 10 years from date

dailyFourQuery?.whereKey("birthday", greaterThanOrEqualTo: datePlus10)
dailyFourQuery?.whereKey("birthday", lessThanOrEqualTo: dateMinus10)

编辑:嘿伙计们,我通过从日期获取年龄,然后从该数字加上或减去整数偏移量来解决这个问题, 然后使用NSCalendar并创建具有修改值的组件。 感谢您的帮助。

let currentUserBirthdayNSDate = currentUserBirthday as! NSDate

let dateComponents = calendar.components([NSCalendarUnit.Day, NSCalendarUnit.Month, NSCalendarUnit.Year, NSCalendarUnit.WeekOfYear, NSCalendarUnit.Hour, NSCalendarUnit.Minute, NSCalendarUnit.Second, NSCalendarUnit.Nanosecond], fromDate: currentUserBirthdayNSDate)

let componentsPlus10 = NSDateComponents()
componentsPlus10.day = dateComponents.day
componentsPlus10.month = dateComponents.month
componentsPlus10.year = dateComponents.year + 10
componentsPlus10.hour = dateComponents.hour
componentsPlus10.minute = dateComponents.minute

1 个答案:

答案 0 :(得分:0)

您可以参考SwiftDate

// Reference date is: Thu, 19 Nov 2015 19:00:00 UTC (1447959600 from 1970)
let refDate = NSDate(timeIntervalSince1970: 1447959600)

// Remember: all parameters are optional; in this example we have ignored minutes and seconds
let newDate = refDate.add(years: 1, months: 2, days: 1, hours: 2)
// newdate is 2017-01-21 14:00:00 +0000

// This is equivalent to
let newDate2 = refDate + 1.years + 2.months + 1.days + 2.hours
你想要这个吗?