Самое короткое "время назад"
Я создал функцию, которая очень хорошо сравнивает две даты и возвращает разницу в виде строки
extension Date {
var shortTimeAgo: String {
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.year,.month,.weekOfMonth,.day,.hour,.minute,.second]
formatter.maximumUnitCount = 1
formatter.unitsStyle = .short
return formatter.string(from: self, to: Date())
}
}
Но он возвращает значения, такие как "35 секунд", "10 минут" или даже "2 дня 1 час"
Как получить еще более короткие значения, такие как "35 с", "10 м" и просто "2d"?
1 ответ
Решение
Попробуйте этот код -
extension Date {
var shortTimeAgo: String {
let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.year,.month,.weekOfMonth,.day,.hour,.minute,.second]
formatter.maximumUnitCount = 1
formatter.unitsStyle = .abbreviated
return formatter.string(from: self, to: Date())
}
}
Надеюсь, поможет!