Si vous voulez juste une prorogation du délai pour la date Ago aller au fond de la réponse
Je vais vous montrer un exemple juste pour obtenir il y a quelques secondes et après je vais montrer votre extension a été mise à jour
Remarque: vous pouvez utiliser directement la date à partir Pase si vous voulez:
if let pastDate = (object?["createdAt"] as? Date){
cell.TimeAgo.text = pastDate.timeAgoDisplay()
}
exemple comment obtenir secondes il y a avec Swift 3:
Première: Pour obtenir il y a le nombre de secondes nous devons vérifier si nous avons une minute ou moins, pour obtenir la date actuelle moins une minute, vous pouvez écrire que:
let minuteAgo = calendar.date(byAdding: .minute, value: -1, to: Date())!
Deuxième: maintenant, comparez les 2 dates! (Dans le cas de votre extension, nous remplaçons yourDate par vous-même) et obtenons la différence entre ces 2 dates.
if (minuteAgo < yourDate) {
let diff = Calendar.current.dateComponents([.second], from: yourDate, to: Date()).second ?? 0
print("\(diff) sec ago")
}
C'est tout, maintenant vous pouvez imprimer l'heure!
donc votre extension est comme ceci: (Ceci est une simple extension pour obtenir le temps auparavant)
extension Date {
func timeAgoDisplay() -> String {
let calendar = Calendar.current
let minuteAgo = calendar.date(byAdding: .minute, value: -1, to: Date())!
let hourAgo = calendar.date(byAdding: .hour, value: -1, to: Date())!
let dayAgo = calendar.date(byAdding: .day, value: -1, to: Date())!
let weekAgo = calendar.date(byAdding: .day, value: -7, to: Date())!
if minuteAgo < self {
let diff = Calendar.current.dateComponents([.second], from: self, to: Date()).second ?? 0
return "\(diff) sec ago"
} else if hourAgo < self {
let diff = Calendar.current.dateComponents([.minute], from: self, to: Date()).minute ?? 0
return "\(diff) min ago"
} else if dayAgo < self {
let diff = Calendar.current.dateComponents([.hour], from: self, to: Date()).hour ?? 0
return "\(diff) hrs ago"
} else if weekAgo < self {
let diff = Calendar.current.dateComponents([.day], from: self, to: Date()).day ?? 0
return "\(diff) days ago"
}
let diff = Calendar.current.dateComponents([.weekOfYear], from: self, to: Date()).weekOfYear ?? 0
return "\(diff) weeks ago"
}
}
Pour l'utiliser, ce qui est très simple:
var now = Date()
now.timeAgoDisplay()
double possible de [ Obtenir la différence entre deux NSDates en (mois/jours/heures/minutes/secondes)] (http://stackoverflow.com/questions/27182023/getting-the-difference-between-two-nsdates-in-months-days- heures-minutes-secondes) – luke