第一次寫東西,對簡書的這個編輯模式實在是??,很是無語!
最近才開始學習Swift,看的是小碼哥的視頻,感覺非常不錯,但是不是3.0的,所以就把他的代碼改了改,方便以后使用,順便在這里記錄一下,也希望能幫到新手的小伙伴們!
/*
剛剛(一分鐘內)
X分鐘前(一小時內)
X小時前(當天)
昨天 HH:mm(昨天)
MM-dd HH:mm(一年內)
yyyy-MM-dd HH:mm(更早)
*/
//新浪服務器返回時間格式:"Tue May 31 17:46:55 +0800 2011" 星期 月 日 時 分 秒 時區 年份
if let timeStr = status?.created_at { //將服務器返回的時間格式化為Date
let formatter = DateFormatter()
formatter.dateFormat = "EE MM dd HH:mm:ss Z yyyy"
formatter.locale = Locale(identifier: "en")
let createDate = formatter.date(from: timeStr)! //創建一個日歷類
let calendar = Calendar.current
var result = ""
var formatterSr = "HH:mm"
if calendar.isDateInToday(createDate) { //今天
let interval = Int(NSDate().timeIntervalSince(createDate)) //比較兩個時間的差值
if interval < 60 {
result = "剛剛"
}else if interval < 60 * 60 {
result = "\(interval/60)分鐘前"
}else if interval < 60 * 60 * 24 {
result = "\(interval / (60 * 60))小時前"
}
}else if calendar.isDateInYesterday(createDate) { //昨天
formatterSr = "昨天 " + formatterSr
formatter.dateFormat = formatterSr
result = formatter.string(from: createDate)
}else {
//該方法可以獲取兩個時間之間的差值
let comps = calendar.dateComponents([Calendar.Component.year], from: createDate, to: Date())
if comps.year! >= 1 { //更早時間
formatterSr = "yyyy-MM-dd " + formatterSr
}else { //一年以內
formatterSr = "MM-dd " + formatterSr
}
formatter.dateFormat = formatterSr
result = formatter.string(from: createDate)
}
timeLabel.text = result //timeLabel是顯示時間的標簽
}