Подтвердить что ты не робот

Как определить, прошел ли NSDate (включая время)

Как определить, прошел ли NSDate (включая время)? Мне нужно в принципе сравнить сегодняшнюю дату с датой в db, но я в тупике.

4b9b3361

Ответ 1

Попробуйте следующее:

if ([someDate timeIntervalSinceNow] < 0.0) {
    // Date has passed
}

Ответ 2

вам нужно использовать сравнение NSDate, многие ответы здесь помогут вам.

iOS: Сравните две даты

Логика

нуждается в настройке, но это должно привести вас в правильном направлении:

- (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]]) 

Ответ 3

Вы можете использовать

[NSDate date];

чтобы получить объект NSDate, представляющий текущее время и дату.

Затем сравните это с датой, которую вы анализируете, например:

if ([currentDate timeIntervalSince1970] > [yourDate timeIntervalSince1970]) {
// yourDate is in the past
}

вы можете использовать это, чтобы сравнить любые две даты. Надеюсь, это поможет.