Как определить, прошло ли NSDate (включая время)? Мне нужно в основном сравнить сегодняшнюю дату с датой в БД, но я в тупике.
Вопрос
Как определить, прошло ли NSDate (включая время)
Ответы
Ответ 1 · рейтинг 92 · mattjgalloway
Попробуй это:
if ([someDate timeIntervalSinceNow] < 0.0) {
// Date has passed
}
Ответ 2 · рейтинг 6 · Nik Burns
вам нужно использовать сравнение 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]])
Ответ 3 · рейтинг 2 · Simon Withington
Ты можешь использовать
[NSDate date];
чтобы получить объект NSDate, представляющий текущее время и дату.
Затем сравните это с датой, которую вы анализируете, например:
if ([currentDate timeIntervalSince1970] > [yourDate timeIntervalSince1970]) {
// yourDate is in the past
}
вы можете использовать это, чтобы сравнить любые две даты. Надеюсь это поможет.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Цифровая подпись документа PDF в iOS
- Ошибка xcode 4: ld: библиотека не найдена для -lSystem.B
- Как работать через UIScrollView?
- Создание статической библиотеки для проблемы с iphone-устройством
- Как изменить внешний вид "пустых" ячеек в обычном UITableView?
- Можно ли использовать базовые данные для автоматического удаления объекта, когда отношение "ко многим" падает