【发布时间】:2014-08-04 17:35:28
【问题描述】:
我的数据库中的解析对象有一个日期字段,我必须将其用作过滤器来向用户显示特定日期的一些结果。我要求用户选择一个带有 UIPickerDate 的日子,他们我正在使用这个约束创建一个查询:
[query whereKey:@"meetingDateAndTime" equalTo:appDelegate.meetingDateAndTime]; // appDelegate.meetingDateAndTime represent the UIPickerDate date
问题是即使我使用 UIDatePickerModeDate 设置 UIPickerDate 日期也包含时间,所以查询不会检索任何内容。 然后我想创建另外两个日期,前 1 天的时间为 23:59,另一天后的时间为 00:00,然后添加两个解析约束,如下所示:
NSDate *choosedDate = appDelegate.meetingDateAndTime;
NSDateComponents *dayComponentPrev = [[NSDateComponents alloc] init];
NSDateComponents *dayComponentNext = [[NSDateComponents alloc] init];
dayComponentPrev.day = -1;
dayComponentNext.day = +1;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate *prevDate = [theCalendar dateByAddingComponents:dayComponentPrev toDate:choosedDate options:0];
NSDate *nextDate = [theCalendar dateByAddingComponents:dayComponentNext toDate:choosedDate options:0];
NSDateComponents *componentsPrev = [theCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:prevDate];
[componentsPrev setHour:23];
[componentsPrev setMinute:59];
NSDate *prevOk = [theCalendar dateFromComponents:componentsPrev];
NSDateComponents *componentsNext = [theCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:nextDate];
[componentsNext setHour:0];
[componentsNext setMinute:0];
NSDate *nextOk = [theCalendar dateFromComponents:componentsNext];
[query whereKey:@"meetingDateAndTime" greaterThan:prevOk];
[query whereKey:@"meetingDateAndTime" lessThan:nextOk];
该解决方案有效,但我想知道是否有更优雅的方法来做到这一点。 作为 IOS 和 Parse 的新手,我倾向于使事情过于复杂......有什么建议吗?
【问题讨论】:
标签: ios date parse-platform nsdate uipicker