Ios 如何将日期转换为时间间隔,以便使用if语句
这是我的代码:Ios 如何将日期转换为时间间隔,以便使用if语句,ios,swift,xcode,nsdateformatter,Ios,Swift,Xcode,Nsdateformatter,这是我的代码: if let date = messages?.date{ let dateFormatter = DateFormatter() dateFormatter.dateFormat = "h:mm a" //let elapseTimeInSeconds = NSDate.timeIntervalSince(date) let elapseTimeInSeconds = Date(t
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)
}
这就是错误:
无法将“日期”类型的值转换为预期的参数类型
“时间间隔”(也称为“双精度”)
错误在这一行:
let elapseTimeInSeconds = Date(timeIntervalSinceNow: (date as? Date))
我已经尝试了我所知道的,但没有任何效果。请提供帮助。您可以通过的属性
TimeIntervalencesInnow
直接访问它,也不需要在Swift 3中使用NSDate
直接使用Date
和Date(from:)
日期格式化程序的方法返回Date?
的实例而不是NSDate?
let timeInterval = date.timeIntervalSinceNow
您可以使用方法timeIntervalSince(:)
获得两个日期之间的TimeInterval
Swift 3.0
您需要编写以下代码:
let elapseTimeInSeconds = Date().timeIntervalSince(date as Date)
Strong!!! Date() or NSDate().timeIntervalSince(date as Date)
嘿,尼拉夫。谢谢你的快速回答。我之前有Date.TimeIntervalSince(Date),它的类型是(Date)->TimeInterval,这使得类型不匹配,因此我无法在If语句中比较它们。我的代码现在可以工作了,但它在超过一天或七天的时间里跳过If语句。有什么建议吗?
let elapseTimeInSeconds = Date().timeIntervalSince(date as Date)
Strong!!! Date() or NSDate().timeIntervalSince(date as Date)