2016-02-01 54 views
0

我有一个Swift模型NSDate字段名为expirationDate,我想根据当前日期计算剩余到期之前。Swift:NSDate减去NSDate小时

有没有一种简单的方法来做到这一点与现有的NSDate功能?

回答

2

现在不能检查,但应该类似

expirationDate.timeIntervalSinceNow/3600 
+0

这是一个比我更好的答案,我完全在T间隔imeIntervalSince现在甚至是一件事情。您的答案在REPL中无需修改即可使用。 – Undo

1

只要找到秒(NSTimeInterval)两个日期之间通过60 * 60 = 3600号( '现在' 和到期日期)和除法:

let secondsUntilExpiration = expirationDate.timeIntervalSinceDate(NSDate()); 

let hoursUntilExpiration = secondsUntilExpiration/3600 

例如:

7> let now = NSDate() 
now: NSDate = 2016-02-01 03:44:06 UTC 
    8> let expirationDate = now.dateByAddingTimeInterval(60*60*10) // ten hours from now 
expirationDate: NSDate = 2016-02-01 13:44:06 UTC 
    9> let secondsUntilExpiration = expirationDate.timeIntervalSinceDate(NSDate()); 
secondsUntilExpiration: NSTimeInterval = 35991.422316968441 
10> let hoursUntilExpiration = secondsUntilExpiration/3600 
hoursUntilExpiration: Double = 9.9976173102690122 
// Slightly less than the 10 hours above because of the time it took me to type.