Saltar al contenido

Compruebe si la fecha es anterior a la fecha actual (Swift)

Solución:

Encuentro el earlierDate método.

if date1.earlierDate(date2).isEqualToDate(date1)  {
     print("date1 is earlier than date2")
}

También tienes el laterDate método.

Swift 3 a Swift 5:

if date1 < date2  {
     print("date1 is earlier than date2")
}

Hay una forma sencilla de hacerlo. (Swift 3 es aún más simple, marque al final de la respuesta)

Código SWIFT:

if myDate.timeIntervalSinceNow.isSignMinus {
    //myDate is earlier than Now (date and time)
} else {
    //myDate is equal or after than Now (date and time)
}

Si necesita comparar fecha sin hora (“MM / dd / aaaa”).

Código SWIFT:

//Ref date
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"
let someDate = dateFormatter.dateFromString("03/10/2015")

//Get calendar
let calendar = NSCalendar.currentCalendar()

//Get just MM/dd/yyyy from current date
let flags = NSCalendarUnit.CalendarUnitDay | NSCalendarUnit.CalendarUnitMonth | NSCalendarUnit.CalendarUnitYear
let components = calendar.components(flags, fromDate: NSDate())

//Convert to NSDate
let today = calendar.dateFromComponents(components)

if someDate!.timeIntervalSinceDate(today!).isSignMinus {
    //someDate is berofe than today
} else {
    //someDate is equal or after than today
} 

Enlace de documentos de Apple aquí.

Edición 1: Importante

De las notas de migración de Swift 3:

El migrador es conservador, pero hay algunos usos de NSDate que tienen mejores representaciones en Swift 3:
(x as NSDate).earlierDate(y) se puede cambiar a x < y ? x : y
(x as NSDate).laterDate(y) se puede cambiar a x < y ? y : x

Entonces, en Swift 3 puedes usar operadores de comparación.

Si necesita comparar una fecha con ahora sin la creación de un nuevo objeto Date, simplemente puede usar esto en Swift 3:

if (futureDate.timeIntervalSinceNow.sign == .plus) {
    // date is in future
}

y

if (dateInPast.timeIntervalSinceNow.sign == .minus) {
    // date is in past
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *