これは私のコードです:
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)
}
これはエラーです:
タイプ「日付」の値を変換できませんか?期待される引数タイプ 'TimeInterval'(別名 'Double')に
エラーはこの行にあります:
let elapseTimeInSeconds = Date(timeIntervalSinceNow: (date as? Date))
私は知っていることを試しましたが、何もうまくいきませんでした。助けてください。
timeIntervalSinceNow
のプロパティDate
から直接アクセスできます。また、SwiftでNSDate
を使用する必要はありません。 = 3 Date
のDateFormatter
およびdate(from:)
メソッドを直接使用__Date?
_ではなく_NSDate?
_のインスタンスを返す.
_let timeInterval = date.timeIntervalSinceNow
_
また、メソッドtimeIntervalSince(_:)
を使用して、2つの日付の間でTimeInterval
を取得できます。
_let timeInterval = date1.timeIntervalSince(date2)
_
Swift 3.
このコードを書く必要があります:
let elapseTimeInSeconds = Date().timeIntervalSince(date as Date)
Strong!!! Date() or NSDate().timeIntervalSince(date as Date)