Swift: NSDate 减去 NSDate 的小时数
Swift: NSDate minus NSDate in hours
我在 Swift 中有一个模型,其中有一个名为 expirationDate
的 NSDate
字段,我想计算到期前的 剩余小时数 在当前日期。
是否有使用现有 NSDate
功能的简单方法?
只需计算两个日期('now' 和您的到期日期)之间的秒数 (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.
现在无法检查,但应该类似于
expirationDate.timeIntervalSinceNow / 3600
我在 Swift 中有一个模型,其中有一个名为 expirationDate
的 NSDate
字段,我想计算到期前的 剩余小时数 在当前日期。
是否有使用现有 NSDate
功能的简单方法?
只需计算两个日期('now' 和您的到期日期)之间的秒数 (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.
现在无法检查,但应该类似于
expirationDate.timeIntervalSinceNow / 3600