-
如果時間比現(xiàn)在小于60秒蛇券,則顯示剛剛
-
如果時間比現(xiàn)在小于60分鐘缀壤,則顯示多少分鐘前
-
如果時間比現(xiàn)在小于24小時樊拓,則顯示多少個小時前
-
如果時間比現(xiàn)在超過24小時小于48小時,則顯示昨天幾點幾分
-
如果時間比現(xiàn)在間隔小于1年塘慕,則顯示哪月哪天筋夏,幾時幾分
-
其他的就顯示哪年哪月哪天幾時幾分
代碼實現(xiàn)
let fmt = DateFormatter()
fmt.dateFormat = "EEE MM dd HH:mm:ss Z yyyy"
fmt.locale = NSLocale(localeIdentifier: "en") as Locale
// 2.將字符串時間,轉(zhuǎn)成NSDate類型
guard let ceateDate = fmt.date(from: createAtstr) else {
return ""
}
let nowDate = NSDate()
let interval = nowDate.timeIntervalSince(ceateDate)
if interval < 60 {
return "剛剛"
}
if interval < (60 * 60) {
return "\(Int(interval) / 60)分鐘前"
}
if interval < (60 * 60 * 24){
return "\(Int(interval)/(60 * 60))小時前"
}
let calendar = NSCalendar.current
if calendar.isDateInYesterday(ceateDate){
fmt.dateFormat = "昨天 HH:mm"
return fmt.string(from: ceateDate)
}
let gap = calendar.dateComponents([Calendar.Component.year], from: ceateDate, to: nowDate as Date)
if gap.year! < 1 {
fmt.dateFormat = "MM-dd HH:mm"
return fmt.string(from: ceateDate)
}
fmt.dateFormat = "yyyy-MM-dd HH:mm"
return fmt.string(from: ceateDate)
-
封裝成一個分類
第一步
第二步
第三步
- 并提供一個類方法
-
把剛才的代碼放到類方法里面 外面直接調(diào)用即可
-
使用
代碼呈上
https://gitee.com/lanyingwei/codes/bo9tp4g0hkeq6m31fzsdi33