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)