第一次寫(xiě)東西饱亮,對(duì)簡(jiǎn)書(shū)的這個(gè)編輯模式實(shí)在是??矾芙,很是無(wú)語(yǔ)!
最近才開(kāi)始學(xué)習(xí)Swift近上,看的是小碼哥的視頻剔宪,感覺(jué)非常不錯(cuò),但是不是3.0的壹无,所以就把他的代碼改了改葱绒,方便以后使用,順便在這里記錄一下斗锭,也希望能幫到新手的小伙伴們地淀!
/*
剛剛(一分鐘內(nèi))
X分鐘前(一小時(shí)內(nèi))
X小時(shí)前(當(dāng)天)
昨天 HH:mm(昨天)
MM-dd HH:mm(一年內(nèi))
yyyy-MM-dd HH:mm(更早)
*/
//新浪服務(wù)器返回時(shí)間格式:"Tue May 31 17:46:55 +0800 2011" 星期 月 日 時(shí) 分 秒 時(shí)區(qū) 年份
if let timeStr = status?.created_at { //將服務(wù)器返回的時(shí)間格式化為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)! //創(chuàng)建一個(gè)日歷類
let calendar = Calendar.current
var result = ""
var formatterSr = "HH:mm"
if calendar.isDateInToday(createDate) { //今天
let interval = Int(NSDate().timeIntervalSince(createDate)) //比較兩個(gè)時(shí)間的差值
if interval < 60 {
result = "剛剛"
}else if interval < 60 * 60 {
result = "\(interval/60)分鐘前"
}else if interval < 60 * 60 * 24 {
result = "\(interval / (60 * 60))小時(shí)前"
}
}else if calendar.isDateInYesterday(createDate) { //昨天
formatterSr = "昨天 " + formatterSr
formatter.dateFormat = formatterSr
result = formatter.string(from: createDate)
}else {
//該方法可以獲取兩個(gè)時(shí)間之間的差值
let comps = calendar.dateComponents([Calendar.Component.year], from: createDate, to: Date())
if comps.year! >= 1 { //更早時(shí)間
formatterSr = "yyyy-MM-dd " + formatterSr
}else { //一年以內(nèi)
formatterSr = "MM-dd " + formatterSr
}
formatter.dateFormat = formatterSr
result = formatter.string(from: createDate)
}
timeLabel.text = result //timeLabel是顯示時(shí)間的標(biāo)簽
}