【问题标题】:PFQuery by datePF查询日期
【发布时间】:2014-11-17 13:35:26
【问题描述】:

我正在尝试使用 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...

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

【问题讨论】:

  • “nextAppointment 设置为日期”是什么意思?

标签: ios parse-platform pfquery


【解决方案1】:

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...
    }
}];

【讨论】:

  • 我从来没有这样想过。非常感谢你,这是一个很大的帮助。
  • 使用 [NSDate date] 你认为电话有正确的 Date 设置!如果您想获得相同的结果但 [NSDate 日期] 不正确,该怎么办?
猜你喜欢
  • 2014-08-29
  • 1970-01-01
  • 2011-08-30
  • 2010-12-20
  • 2021-08-17
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多