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

标签 swift firebase google-cloud-firestore

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

2018 年 6 月 19 日下午 7:20:21 UTC-4

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

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

错误:

无法将“FIRTimestamp”类型的值 (0x104fa8b98) 转换为“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)

参见 Timestamp reference documentation .

关于swift - 将 Firebase Firestore 时间戳转换为日期(Swift)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51116381/

相关文章:

objective-c - 在 Objective-C 类中使用 SDCAlertView 时如何自定义它

java - Firebase 身份验证用户为空

firebase - 在 GitLab CI 上运行 Firebase 模拟器

android - 使用 Google Firestore(加上 Google Stack)跨 iOS 和 Android 制作 Unity 移动游戏

firebase - 已删除的用户有权访问 Firebase Firestore

ios - 回到之前的 ViewController 不适用于 Swift 中的多个 View Controller

ios - Storyboard编辑器中的内容消失了

ios - 呈现一个 View Controller ,关闭它并在 Swift 中呈现一个不同的 View Controller

angularjs - AngularFire - 如何查询非规范化数据?

javascript - Firebase/Angularfire 0.9 - 创建新用户和配置文件