PFQuery按日期

我正在尝试使用PFQuery搜索包含特定日期(没有时间)的所有结果。 我似乎无法弄清楚它为什么不起作用。 我正在使用的代码如下。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"YYY-MM-dd"]; NSString *today; today = [dateFormat stringFromDate:[NSDate date]]; PFQuery *query = [PFQuery queryWithClassName:@"Booking"]; [query whereKey:@"nextAppointment" equalTo:today]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (!error) { etc etc... 

使用Parse网站将字段nextAppointment设置为日期。 任何帮助,将不胜感激

NSDate对象和Parse.com日期字段都具有包括小时和分钟的确切时间。 这意味着如果您正在寻找某一天的预约,您实际上是在搜索日期范围:该特定日期的凌晨12:00至晚上11:59。

如果您创建没有明确的小时和分钟的NSDate,Parse不知道您的意思是“当天的所有日期” – 它通过填充小时和分钟并搜索确切的时间来解释它。 你可以通过日期范围搜索解决这个问题。

以下是我的一个应用程序执行此操作的示例,并根据您的目的进行了修改:

 //Create two dates for this morning at 12:00am and tonight at 11:59pm NSDate *now = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:now]; [components setHour:0]; [components setMinute:0]; [components setSecond:1]; NSDate *morningStart = [calendar dateFromComponents:components]; [components setHour:23]; [components setMinute:59]; [components setSecond:59]; NSDate *tonightEnd = [calendar dateFromComponents:components]; PFQuery *query = [PFQuery queryWithClassName:@"Booking"]; [query whereKey:@"nextAppointment" greaterThan:morningStart]; [query whereKey:@"nextAppointment" lessThan:tonightEnd]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (!error) { //Etc... } }];