【发布时间】:2012-02-03 11:38:09
【问题描述】:
如何确定 NSDate(包括时间)是否已过?我基本上需要将今天的日期与数据库中的日期进行比较,但我很难过。
【问题讨论】:
标签: iphone objective-c cocoa-touch nsdate
如何确定 NSDate(包括时间)是否已过?我基本上需要将今天的日期与数据库中的日期进行比较,但我很难过。
【问题讨论】:
标签: iphone objective-c cocoa-touch nsdate
试试这个:
if ([someDate timeIntervalSinceNow] < 0.0) {
// Date has passed
}
【讨论】:
someDate.isInPast。
func isPast() -> Bool { if (self.timeIntervalSinceNow < 0.0) { return true } else { return false } }
你可以使用
[NSDate date];
获取表示当前时间和日期的 NSDate 对象。
然后将其与您正在分析的日期进行比较,例如:
if ([currentDate timeIntervalSince1970] > [yourDate timeIntervalSince1970]) {
// yourDate is in the past
}
您可以使用它来比较任意两个日期。希望这会有所帮助。
【讨论】:
您需要使用 NSDate 比较,这里的许多答案都会对您有所帮助。
逻辑需要调整,但这应该会让你朝着正确的方向前进:
- (BOOL)date:(NSDate*)date isBefore:(BOOL)before otherDate:(NSDate*)otherDate ;
{
if(before && ([date compare:otherDate] == NSOrderedAscending))
return YES;
if (!before && ([date compare:otherDate] == NSOrderedDescending))
return YES;
}
用法:
if([self date:yourDate isBefore:YES otherDate:[NSDate date]])
【讨论】:
isBefore:。大声朗读“date:X isBefore:YES/NO otherDate:Y”听起来比“date:X is:YES/NO otherDate:Y”好得多。