如何从Firebase数据库检索时间戳

时间:2018-11-09 09:24:22

标签: ios firebase firebase-realtime-database

我正在测试从Firebase数据库在我的应用程序中显示时间戳。我成功地在数据库中将时间戳生成为double,但是如何从那里检索到它。 另外,一旦我从数据库中加载双精度后,该如何将其转换为正常日期格式?

my firebase database under users node

2 个答案:

答案 0 :(得分:1)

要将值从数据库转换回NSDate

NSDate(timeIntervalSince1970: value/1000)

/1000是必需的,因为NSDate期望以秒为单位的值,而您以毫秒为单位存储该值。

答案 1 :(得分:1)

使用此扩展名包含您对DataSnapshot的转换。对于您来说,时间戳(以毫秒为单位)需要除以1000,才能将其转换为秒。

extension DataSnapshot {
    var doubleValue: Double? { return value as? Double }
    var dateValue: Date? {
        return doubleValue.flatMap {
            Date(timeIntervalSince1970: $0 / 1000)
        }
    }
}

这样,您可以像这样重复使用它们:

ref.observeSingleEvent(of: .value, with: { snapshot in
    if let dateJoined = snapshot.child("dateJoined").dateValue {
        print(dateJoined)
    }
})