查询解析大于今天的日期

Query Parse for dates greater than Today

我正在尝试查询我的 Parse 数据库中所有 日期大于今天的日期。

然后我会在 table 中列出这些项目。

我不能完全让它工作,而且我也不确定将日期放入我的 Parse 数据库中的格式。

这是我试过的:

// Date
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterFullStyle];
NSString *dateToday = [formatter stringFromDate:[NSDate date]];
NSLog(@"Date Today: %@", dateToday);

// Initialize table data
PFQuery *query = [self queryForTable];
[query whereKey:@"dateTime" greaterThan:dateToday];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

解析数据库:

对于我遗漏或需要添加的内容有什么想法吗?

对我来说,我不使用不同的日期格式存储在数据库中。我在数据库中放入了双倍值。便于比较。

        double d_dateTime = [[NSDate date] timeIntervalSince1970];

上述代码的问题在于您将日期存储为 String 对象,而不是 Date 对象。这对于您想要执行的比较查询是无用的。

使用 iOS Parse 库时,您可以将 NSDate 对象传递到 PFQuery 中。

NSDate* now_gmt = [NSDate date]; 

PFQuery *query = [self queryForTable];
[query whereKey:@"dateTime" greaterThan:now_gmt];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

您需要确保所有查询和日期都以 GMT 时间存储,这是留给 reader 的练习。

将日期保存为对象字段

这应该很明显,但是首先要保存日期,你会做这样的事情:

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:14];
[comps setMonth:2];
[comps setYear:2015];
NSDate* myDate = [[NSCalendar currentCalendar] dateFromComponents:comps];

PFObject *testObject = [PFObject objectWithClassName:@"TestObject"];
testObject[@"test"] = @"Test 1";
testObject[@"testDate"] = myDate;
[testObject saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {