我如何将 Date 转换为 TimeInterval 以便我可以使用 if 语句
How do i convert Date to TimeInterval so I can use the if statements
这是我的代码:
if let date = messages?.date{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm a"
//let elapseTimeInSeconds = NSDate.timeIntervalSince(date)
let elapseTimeInSeconds = Date(timeIntervalSinceNow: (date as? Date))
let secondsInDays: TimeInterval = 60 * 60 * 24
if elapseTimeInSeconds > secondsInDays {
dateFormatter.dateFormat = "EEE"
} else if elapseTimeInSeconds > 7 * secondsInDays {
dateFormatter.dateFormat = "MM/dd/yy"
}
timeLabel.text = dateFormatter.string(from: date as Date)
}
这是错误:
Cannot convert value of type 'Date?' to expected argument type
'TimeInterval' (aka 'Double')
错误在这一行:
let elapseTimeInSeconds = Date(timeIntervalSinceNow: (date as? Date))
我已经尝试了我所知道的,但没有任何效果。请帮忙。
可以通过Date
的属性 timeIntervalSinceNow
直接访问,也不需要在Swift中使用NSDate
3 直接使用[= DateFormatter
的 13=] 和 date(from:)
方法 Date?
的 return 实例不是 NSDate?
.
let timeInterval = date.timeIntervalSinceNow
并且您可以使用方法 timeIntervalSince(_:)
在两个日期之间获得 TimeInterval
。
let timeInterval = date1.timeIntervalSince(date2)
Swift 3.0
你需要这样写代码:
let elapseTimeInSeconds = Date().timeIntervalSince(date as Date)
Strong!!! Date() or NSDate().timeIntervalSince(date as Date)
这是我的代码:
if let date = messages?.date{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "h:mm a"
//let elapseTimeInSeconds = NSDate.timeIntervalSince(date)
let elapseTimeInSeconds = Date(timeIntervalSinceNow: (date as? Date))
let secondsInDays: TimeInterval = 60 * 60 * 24
if elapseTimeInSeconds > secondsInDays {
dateFormatter.dateFormat = "EEE"
} else if elapseTimeInSeconds > 7 * secondsInDays {
dateFormatter.dateFormat = "MM/dd/yy"
}
timeLabel.text = dateFormatter.string(from: date as Date)
}
这是错误:
Cannot convert value of type 'Date?' to expected argument type 'TimeInterval' (aka 'Double')
错误在这一行:
let elapseTimeInSeconds = Date(timeIntervalSinceNow: (date as? Date))
我已经尝试了我所知道的,但没有任何效果。请帮忙。
可以通过Date
的属性 timeIntervalSinceNow
直接访问,也不需要在Swift中使用NSDate
3 直接使用[= DateFormatter
的 13=] 和 date(from:)
方法 Date?
的 return 实例不是 NSDate?
.
let timeInterval = date.timeIntervalSinceNow
并且您可以使用方法 timeIntervalSince(_:)
在两个日期之间获得 TimeInterval
。
let timeInterval = date1.timeIntervalSince(date2)
Swift 3.0
你需要这样写代码:
let elapseTimeInSeconds = Date().timeIntervalSince(date as Date)
Strong!!! Date() or NSDate().timeIntervalSince(date as Date)