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"
}
}
Soit:
let date = postTimestamp.dateValue()
ou vous pourriez faire:
let date = Date(timeIntervalSince1970: postTimestamp.seconds)