将 Firebase Firestore 时间戳转换为日期(swift)?



我在 Firestore 字段中保存了一个日期作为时间戳,我想在 Swift 中将其转换为日期:

June 19,2018 at 7:20:21 PM UTC-4

我尝试了以下方法,但出现错误:

let date = Date(timeIntervalSince1970: postTimestamp as! TimeInterval)

错误:

Could not cast value of type 'FIRTimestamp' (0x104fa8b98) to 'NSNumber'

我想转换为日期的原因是,我可以使用此日期扩展来模仿您在Instagram帖子中看到的时间戳:

extension Date {
func timeAgoDisplay() -> String {
let secondsAgo = Int(Date().timeIntervalSince(self))
let minute = 60
let hour = 60 * minute
let day = 24 * hour
let week = 7 * day
if secondsAgo < minute {
return "(secondsAgo) seconds ago"
} else if secondsAgo < hour {
return "(secondsAgo / minute) minutes ago"
} else if secondsAgo < day {
return "(secondsAgo / hour) hours ago"
} else if secondsAgo < week {
return "(secondsAgo / day) days ago"
}
return "(secondsAgo / week) weeks ago"
}
}

要么做:

let date = postTimestamp.dateValue()

或者你可以做:

let date = Date(timeIntervalSince1970: postTimestamp.seconds)

请参阅时间戳参考文档。

最新更新