如何使用 swift 4 将 Firebase ServerValue.timestamp() 转换为日期或毫秒
How to convert the Firebase ServerValue.timestamp() to date or to millisecond using swift 4
这里,我想将时间戳转换为毫秒,但无法转换。请帮忙
如下延长日期 class 以从时间戳转换为日期:
extension Date {
var millisecondsSince1970:Int {
return Int((self.timeIntervalSince1970 * 1000.0).rounded())
}
init(milliseconds:Int) {
self = Date(timeIntervalSince1970: TimeInterval(milliseconds / 1000))
}
}
从 firebase 获取后,您可以将时间戳转换为日期
let date = Date.init(milliseconds:object.startDate!)
终于找到答案了
第一步:添加Object MapperPod依赖
第 2 步:
创建类型为 TransformType 的 FirebaseDateTransform class 并覆盖函数 transformFromJSON(...)
// Created by Bipin on 9/26/18.
// Copyright © 2018 profyl.org. All rights reserved.
//
import Foundation
import ObjectMapper
import Firebase
enum FirebaseDate {
case date(Date)
case serverTimestamp
var date: Date {
switch self {
case .date(let date):
return date
case .serverTimestamp:
return Date()
}
}
}
class FirebaseDateTransform: TransformType {
public typealias Object = FirebaseDate
public typealias JSON = Any
open func transformFromJSON(_ value: Any?) -> FirebaseDate? {
switch value {
case is [AnyHashable: Any]?:
return .serverTimestamp
default:
return nil
}
}
open func transformToJSON(_ value: FirebaseDate?) -> Any? {
switch value {
case .serverTimestamp?:
return ServerValue.timestamp()
default:
return nil
}
}
open func getFirebaseTimestamp()->String{
return String(transformFromJSON(ServerValue.timestamp())!.date.toMillis())
}
}
第 3 步:
将 日期转换为毫秒 .
的扩展
extension Date {
func toMillis() -> Int64! {
return Int64(self.timeIntervalSince1970 * 1000)
}
}
这里,我想将时间戳转换为毫秒,但无法转换。请帮忙
如下延长日期 class 以从时间戳转换为日期:
extension Date {
var millisecondsSince1970:Int {
return Int((self.timeIntervalSince1970 * 1000.0).rounded())
}
init(milliseconds:Int) {
self = Date(timeIntervalSince1970: TimeInterval(milliseconds / 1000))
}
}
从 firebase 获取后,您可以将时间戳转换为日期
let date = Date.init(milliseconds:object.startDate!)
终于找到答案了
第一步:添加Object MapperPod依赖
第 2 步: 创建类型为 TransformType 的 FirebaseDateTransform class 并覆盖函数 transformFromJSON(...)
// Created by Bipin on 9/26/18.
// Copyright © 2018 profyl.org. All rights reserved.
//
import Foundation
import ObjectMapper
import Firebase
enum FirebaseDate {
case date(Date)
case serverTimestamp
var date: Date {
switch self {
case .date(let date):
return date
case .serverTimestamp:
return Date()
}
}
}
class FirebaseDateTransform: TransformType {
public typealias Object = FirebaseDate
public typealias JSON = Any
open func transformFromJSON(_ value: Any?) -> FirebaseDate? {
switch value {
case is [AnyHashable: Any]?:
return .serverTimestamp
default:
return nil
}
}
open func transformToJSON(_ value: FirebaseDate?) -> Any? {
switch value {
case .serverTimestamp?:
return ServerValue.timestamp()
default:
return nil
}
}
open func getFirebaseTimestamp()->String{
return String(transformFromJSON(ServerValue.timestamp())!.date.toMillis())
}
}
第 3 步: 将 日期转换为毫秒 .
的扩展extension Date {
func toMillis() -> Int64! {
return Int64(self.timeIntervalSince1970 * 1000)
}
}