หลังจากค้นหา stackoverflow และเว็บเป็นจำนวนมากฉันต้องสรุปว่าวิธีที่ดีที่สุดในการทำเช่นนี้:
- (BOOL)isEndDateIsSmallerThanCurrent:(NSDate *)checkEndDate
{
NSDate* enddate = checkEndDate;
NSDate* currentdate = [NSDate date];
NSTimeInterval distanceBetweenDates = [enddate timeIntervalSinceDate:currentdate];
double secondsInMinute = 60;
NSInteger secondsBetweenDates = distanceBetweenDates / secondsInMinute;
if (secondsBetweenDates == 0)
return YES;
else if (secondsBetweenDates < 0)
return YES;
else
return NO;
}
คุณสามารถเปลี่ยนเป็นความแตกต่างระหว่างชั่วโมงได้เช่นกัน
สนุก!
แก้ไข 1
ถ้าคุณต้องการเปรียบเทียบวันที่กับรูปแบบของ dd / MM / yyyy เท่านั้นคุณต้องเพิ่มบรรทัดด้านล่างระหว่างNSDate* currentdate = [NSDate date];
&&NSTimeInterval distance
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy"];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]
autorelease]];
NSString *stringDate = [dateFormatter stringFromDate:[NSDate date]];
currentdate = [dateFormatter dateFromString:stringDate];