Pregunta

Tengo una fecha convertida en un valor doble y se guarda en la base de datos. Ahora, quiero comparar si las horas currentDate > myDataBaseDate + 8 es decir, que quieren obtener 8 horas añadido a myDataBaseDate. Estoy convertir la fecha en valores dobles. Así cómo consigo 8 horas más tarde el tiempo de mi base de datos de fecha de guardado. ¿Cómo comparo

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
¿Fue útil?

Solución

No estoy del todo seguro de lo que está tratando de hacer, pero se puede crear un objeto NSDate mediante la adición de tiempo en segundos a otro NSDate usando:

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

// por ejemplo. añadir 8 horas a la hora:

NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];

Otros consejos

Desde iOS 8 no es el más conveniente dateByAddingUnit:

//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)

Usted puede simplemente utilizar:

NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];

Usted puede simplemente añadir 8 * 3600 a su valor de base de datos (suponiendo que su valor doble convertida representa segundos).

NSDate * startdate = datePicker.date;

    NSTimeInterval secondsInOneHours = 1 * 60 * 60;

    NSDate *dateOneHoursAhead = [startdate dateByAddingTimeInterval:secondsInOneHours];

    [dateformate setDateFormat:@"d-MMM-yy HH:mm:ss"];

    strDate = [dateformate stringFromDate:dateOneHoursAhead];

Swift 3.X Uso simple

let calendar = NSCalendar.autoupdatingCurrent
let newDate = calendar.date(byAdding: .hour, value: 8, to: Date())
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top