我在iOS中使用解析检查两个条件。在解析中,我在类中主要有2个键(类名app
),键是uuid
和expiryDate
。
expiryDate
字段是否大于GMT中的当前日期和时间。但是当我尝试下面的查询时,它只检查第一个条件 第二次日期检查没有发生。
代码
NSString *udid = [[UIDevice currentDevice] uniqueDeviceIdentifier];
NSDate *currentDate = [NSDate new];
NSDate *localDate = currentDate; // get the date
NSTimeInterval timeZoneOffset = [[NSTimeZone defaultTimeZone] secondsFromGMT]; // You could also use the systemTimeZone method
NSTimeInterval gmtTimeInterval = [localDate timeIntervalSinceReferenceDate] - timeZoneOffset;
NSDate *gmtDate = [NSDate dateWithTimeIntervalSinceReferenceDate:gmtTimeInterval];
PFQuery *wawQuery = [PFQuery queryWithClassName:@"app"];
[wawQuery whereKey:@"udid" equalTo:udid];
[wawQuery whereKey:@"expiryDate" greaterThan:gmtDate]; //checking not working
[wawQuery findObjectsInBackgroundWithBlock:^(NSArray *users, NSError *error) {
NSLog(@"user-->%@",[[users valueForKey:@"expiryDate"] objectAtIndex:0]);
NSDate *serverDate=(NSDate *)[[users valueForKey:@"expiryDate"] objectAtIndex:0];
if([users count]>0){
if([gmtDate compare:serverDate]==NSOrderedAscending){
NSLog(@"not expired");
sharedManager.status=true;
liveController *rxObj= [self.storyboard instantiateViewControllerWithIdentifier:@"live"];
[self.navigationController pushViewController:rxObj animated:YES];
}else{
NSLog(@"expired");
sharedManager.status=false;
[self initiateControlls];
}
}else{
sharedManager.status=false;
[self initiateControlls];
}
我期待像这样的日期检查
例如19-04-2015 21:20:00和19-04-2015 22:00:04但是
当我使用
时if([gmtDate compare:serverDate]==NSOrderedAscending){
}
只有日期正在检查(2015年4月19日至2015年4月19日22:00:04)我想要两个日期时间检查(19-04-2015 21:20:00至19-04-2015)
答案 0 :(得分:0)
此链接可能对您的情况有所帮助:
https://www.parse.com/questions/comparing-dates-with-the-ios-sdk