Swift3.0時間顯示(剛剛、幾分鐘前。。。)

第一次寫東西,對簡書的這個編輯模式實在是??,很是無語!
最近才開始學習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是顯示時間的標簽
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,232評論 4 61
  • 參觀滄州師范學院,和老師交流校企合作電商人才培養。間或溝通起企業人才培養中的教練技術和為什么做這件事?想起在IPM...
    韌性十足的牛皮糖閱讀 1,024評論 0 6
  • 下面是笑來老師的建議: 首先要把注意力放在自己的成長上。放在一切你想提升的有積累效應的技能磨練上。我的答案在這里:...
    洛尓閱讀 219評論 0 0
  • 你緊閉著眼眸 呼吸著夜的芬芳 月亮照在你臉上 映射出霞光 你靠在我肩膀 幸福印在我胸膛 端詳著你的模樣 淺吻著你的...
    甘露李樂閱讀 200評論 0 0
  • 第18條:盡量使用不可變對象 盡量把對外公布出來的屬性設為只讀,而且只在確有必要時才將屬性對外公布。 對象中表示各...
    dibadalu閱讀 264評論 0 0