¿Cómo puedo determinar si un NSDate (incluido el tiempo) ha pasado? Necesito básicamente comparar la fecha de hoy con una fecha en el DB pero estoy perplejo.¿Cómo puedo determinar si un NSDate (incluido el tiempo) ha pasado
Respuesta
Prueba esto:
if ([someDate timeIntervalSinceNow] < 0.0) {
// Date has passed
}
Puede utilizar
[NSDate date];
para obtener un objeto NSDate que representa la hora y fecha actuales.
luego compararlo con la fecha en que se está analizando, por ejemplo:
if ([currentDate timeIntervalSince1970] > [yourDate timeIntervalSince1970]) {
// yourDate is in the past
}
puede utilizar esto para comparar dos fechas. Espero que esto ayude.
o hacerlo en línea: ([[ NSDate date] timeIntervalSince1970]> [yourDate timeIntervalSince1970]) –
Estaba proporcionando una solución más general para comparar fechas: comparar una fecha hasta ahora es más bien un caso de nicho. Sin embargo, en la práctica, probablemente solo use timeIntervalSinceNow en este escenario particular. –
necesita utilizar una comparación NSDate, muchas respuestas aquí le ayudarán.
lógica tendrá que ajustar, pero esto se debe configurar en la dirección correcta:
- (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;
}
uso:
if([self date:yourDate isBefore:YES otherDate:[NSDate date]])
En una nota de estilo de codificación: su segundo parámetro realmente debería llamarse algo así como 'isBefore:'. Leer en voz alta "fecha: X es antes de: SÍ/NO otro día: Y" suena mucho mejor que "fecha: X es: SÍ/NO otro día: Y". – Taum
- 1. Uso de un NSDate estático para determinar el tiempo transcurrido
- 2. ¿Cómo puedo determinar si un hilo de Win32 ha finalizado?
- 3. ¿Cómo puedo determinar si una imagen ha sido retocada?
- 4. Cómo determinar si mdworker (Spotlight) ha completado el primer escaneo
- 5. ¿Cómo saltear el tiempo en NSDate?
- 6. Determinar si $ .ajax error es un tiempo de espera
- 7. ¿Cómo determinar si el ensamblaje ha sido ngen'd?
- 8. C# comprueba si ha pasado o no argumentos
- 9. si NSDate es el lunes
- 10. ¿cómo puedo determinar si hibernate ha 'cargado' el proxy o el objeto real?
- 11. ¿Cómo puedo determinar si Console.Out ha sido redirigido a un archivo?
- 12. cómo determinar si la página web ha sido modificada
- 13. ¿Cómo se obtiene el tiempo pasado de un verbo?
- 14. ¿Cómo puedo determinar si un usuario ha presionado en una UITableViewCell durante 2 segundos?
- 15. ¿Cómo puedo determinar si ya se ha marcado un botón de opción?
- 16. ¿Cómo puedo determinar si se implementa un método abstracto?
- 17. Determinar si se ha producido un cambio de día
- 18. Cómo determinar si ob_start(); se ha llamado ya
- 19. ¿Cómo puedo determinar si se muestra un botón de retroceso?
- 20. ¿Cómo puedo determinar si un archivo es un archivo PDF?
- 21. NSDate: Agregar un día basado en el tiempo
- 22. ¿Cómo puedo saber si un archivo de JavaScript ya se ha incluido en una página de nivel superior?
- 23. ¿Ha pasado CodeIgniter 2.0/PHPUnit todavía?
- 24. ¿Cómo puedo determinar si existe una función Perl en el tiempo de ejecución?
- 25. ¿Cómo agregar un intervalo de tiempo a un NSDate?
- 26. ¿Cómo puedo obtener el NSDate de ayer
- 27. ¿Cómo puedo determinar si una URL redirige?
- 28. ¿Cómo medir el tiempo pasado en una página?
- 29. determinar si script de PowerShell ha sido punto de fuentes
- 30. Medir el tiempo pasado en cada objetivo de un Makefile
pongo eso en un método categoría de esta manera puede utilizar 'someDate.isInPast'. –
su código está comparando solo la fecha, no la hora. Al igual que estoy comparando el mismo día pero en otro momento como este: 1/1/2015 5:00:00 y 1/1/2015 7:00:00 con esta fecha me está mostrando la fecha ha pasado. – Daddy
+ Papá, no estoy seguro de lo que quiere decir. Según la documentación, este método debe ser perfecto: "El intervalo de tiempo entre el objeto de fecha y la fecha y hora actual. (Solo lectura) Si el objeto de fecha es anterior a la fecha y hora actual, el valor de esta propiedad es negativo". –