//1、一个小时内: xx分钟前
//2、今天之内 HH:mm
//3、今年之内: MM-dd HH:mm
//4、其他年份: yy-MM-dd
func compareForNowWith(_ date: Date) -> String {
// switch NSDate to String
let nowDateString = LWDateManager.switchToStringFrom(Date(), dateFormat: "yyyy-MM-dd HH:mm:ss")!
let targetDateString = LWDateManager.switchToStringFrom(date, dateFormat: "yyyy-MM-dd HH:mm:ss")!
// Compare two date string
if (nowDateString as NSString).substring(with: NSMakeRange(2, 2)) == (targetDateString as NSString).substring(with: NSMakeRange(2, 2)) {
//在同一年内
if (nowDateString as NSString).substring(with: NSMakeRange(5, 5)) == (targetDateString as NSString).substring(with: NSMakeRange(5, 5)) {
//同一天内
let distanceInterval = -date.timeIntervalSinceNow
let oneHourInterval = 60*60 as TimeInterval
if oneHourInterval < distanceInterval {
//在同一个小时内
if distanceInterval/60 < 1 {
//在一分钟内
return NSLocalizedString("不到1分钟前", comment: "")
} else {
//在同一小时,但不在同一分钟内
return "\(distanceInterval/60)分钟前"
}
} else {
//在同一天,但不在同一个小时内
return NSLocalizedString("不到1分钟前", comment: "") + (targetDateString as NSString).substring(with: NSMakeRange(11, 5))
}
} else {
//同一年内,但不在同一天
return (targetDateString as NSString).substring(with: NSMakeRange(5, 11))
}
} else {
//不在同一年内
return (targetDateString as NSString).substring(with: NSMakeRange(2, 8))
}
}