web-dev-qa-db-fra.com

Convertir l'horodatage Firebase Firestore en date (Swift)?

J'ai une date enregistrée dans un champ Firestore en tant qu'horodatage que je souhaite convertir en date dans Swift:

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

J'ai essayé ce qui suit mais j'obtiens une erreur:

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

Erreur:

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

La raison pour laquelle je souhaite convertir en Date est que je puisse utiliser cette extension Date pour imiter les horodatages que vous voyez sur les publications 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"
    }
}
14
winston

Soit:

let date = postTimestamp.dateValue()

ou vous pourriez faire:

let date = Date(timeIntervalSince1970: postTimestamp.seconds)

Voir documentation de référence d'horodatage .

20
rmaddy