Swift convert time to time ago

前端 未结 13 1320
一个人的身影
一个人的身影 2020-12-24 02:14

In Swift5, we have RelativeDateTimeFormatter

Prior to Swift5:


I\'m trying to convert time to time ago, what i wanna do is:

from 1

13条回答
  •  伪装坚强ぢ
    2020-12-24 02:51

    Change your text as you want.

    extension NSDate {
    
        func getElapsedInterval() -> String {
    
            var interval = NSCalendar.currentCalendar().components(.Year, fromDate: self, toDate: NSDate(), options: []).year
    
            if interval > 0 {
                return interval == 1 ? "\(interval)" + " " + "year" :
                "\(interval)" + " " + "years"
            }
    
            interval = NSCalendar.currentCalendar().components(.Month, fromDate: self, toDate: NSDate(), options: []).month
            if interval > 0 {
                return interval == 1 ? "\(interval)" + " " + "month" :
                "\(interval)" + " " + "months"
            }
    
            interval = NSCalendar.currentCalendar().components(.Day, fromDate: self, toDate: NSDate(), options: []).day
            if interval > 0 {
                return interval == 1 ? "\(interval)" + " " + "day" :
                "\(interval)" + " " + "days"
            }
    
            interval = NSCalendar.currentCalendar().components(.Hour, fromDate: self, toDate: NSDate(), options: []).hour
            if interval > 0 {
                return interval == 1 ? "\(interval)" + " " + "hour" :
                "\(interval)" + " " + "hours"
            }
    
            interval = NSCalendar.currentCalendar().components(.Minute, fromDate: self, toDate: NSDate(), options: []).minute
            if interval > 0 {
                return interval == 1 ? "\(interval)" + " " + "minute" :
                "\(interval)" + " " + "minutes"
            }
    
            return "a moment ago"
        }
    }
    

提交回复
热议问题