Jak ustalić, czy NSDate (w tym czas) minął? Muszę w zasadzie porównać dzisiejszą datę do daty w db ale jestem zakłopotany.Jak ustalić, czy NSDate (w tym czas) minął
Odpowiedz
Spróbuj tego:
if ([someDate timeIntervalSinceNow] < 0.0) {
// Date has passed
}
Można użyć
[NSDate date];
aby uzyskać obiekt NSDate reprezentujących aktualny czas i datę.
następnie porównać, że do dnia jesteś analizy, na przykład:
if ([currentDate timeIntervalSince1970] > [yourDate timeIntervalSince1970]) {
// yourDate is in the past
}
można to wykorzystać, aby porównać dwoma datami. Mam nadzieję że to pomoże.
lub zrobić go inline: ([[ Data NSDate] timeIntervalSince1970]> [yourDate timeIntervalSince1970]) –
Po prostu dostarczałem bardziej ogólne rozwiązanie dla porównywania dat - porównywanie daty z teraz jest raczej przypadkiem niszowym. W praktyce jednak prawdopodobnie użyjesz timeIntervalSinceNow w tym konkretnym scenariuszu. –
musisz użyć porównania NSDate, wiele odpowiedzi tutaj pomoże.
logika będzie potrzebował szczypanie, ale to powinno cię we właściwym kierunku:
- (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;
}
Wykorzystanie:
if([self date:yourDate isBefore:YES otherDate:[NSDate date]])
W notce w stylu kodowania: twój drugi parametr powinien naprawdę mieć nazwę 'isBefore:'. Odczytanie głośnej "date: X isBefore: YES/NO otherDate: Y" brzmi o wiele lepiej IMO niż "date: X to: YES/NO otherDate: Y". – Taum
- 1. czas użytkownika mclapply większy niż minął czas
- 2. Jak ustawić tylko czas w zmiennej NSDate?
- 3. NSDate dateByAddingTimeInterval odejmowanie dni nieprawidłowo zmienia czas
- 4. Get Aktualna data i czas z [NSDate date] data czas
- 5. Jak ustalić, czy GraphicsEnvironment istnieje
- 6. Jak przekonwertować długi czas całkowity na NSString lub NSDate, aby wyświetlić czas?
- 7. Jak ustalić, czy dotknięto UILabel?
- 8. Znajdź, czy aktualny czas mieści się w przedziale od
- 9. C# Jak ustalić, czy HTTPS
- 10. Jak ustalić, czy data wypada w weekend?
- 11. Uruchomienie procesu xcode7.2 nie powiodło się: minął czas oczekiwania na uruchomienie aplikacji
- 12. Jak skopiować plik w pliku node.js (w tym zmodyfikowany czas)?
- 13. Jak ustalić, czy jekyll działa lokalnie czy w miejscu produkcji?
- 14. NSDate, porównując dwie daty
- 15. Jak otrzymać NSDate na 00:00 w dniu [data NSDate]?
- 16. Jak zmienić NSString w NSDate?
- 17. NSDate - rok temu, dylemat
- 18. Jak ustalić, czy testy PHPUnit są uruchomione?
- 19. Jak ustalić, czy istnieje skrót ekranu głównego?
- 20. Porównywanie NSDate do [data NSDate]
- 21. Jak ustalić, czy ścieżka jest podkatalogiem innej?
- 22. Jak dodać interwał czasowy do NSDate?
- 23. Jak ustalić, czy ResultSet jest pusty, czy nie w Javie?
- 24. Jak ustalić, czy obiekt istnieje w tablicy, czy nie javascript
- 25. Jak NSLog NSDate?
- 26. Jak ustalić, czy strona podręczna jest otwarta, czy nie?
- 27. Jak ustalić, czy dany ciąg reprezentuje datę?
- 28. Jak ustalić, czy Kopiowanie lokalne jest konieczne?
- 29. Jak ustalić, czy IType jest klasą abstrakcyjną?
- 30. Jak ustalić, czy matematyka C używa SSE2?
kładę, że do metody kategorii, dzięki czemu można używać 'someDate.isInPast'. –
Twój kod porównuje tylko datę, a nie godzinę. Porównywuję ten sam dzień, ale w innym czasie: 01.01.2015 5:00:00 i 01.01.2015 7:00:00 z tą datą pokazuje mi, że data minęła. – Daddy
+ Tatuś, nie jestem pewien, co masz na myśli. Zgodnie z dokumentacją ta metoda powinna być idealna: "Odstęp czasowy między obiektem daty a bieżącą datą i czasem. (Tylko do odczytu) Jeśli obiekt daty jest wcześniejszy niż bieżąca data i godzina, wartość tej właściwości jest ujemna." –