在開發(fā)過程中,有很多地方會(huì)用到時(shí)間判斷,特別是像發(fā)個(gè)狀態(tài)什么的,那么判斷發(fā)送到現(xiàn)在為止的經(jīng)歷了多少時(shí)間計(jì)算起來還是個(gè)麻煩的事情
下面就用代碼來捋一捋這個(gè)邏輯
let dateFormatter = NSDateFormatter()
//判斷時(shí)間節(jié)點(diǎn)
if NSCalendar.currentCalendar().isDateInToday(date)
{
let components = date.deltaFrom(NSDate())
//今天內(nèi)一個(gè)小時(shí)以上 顯示"xx小時(shí)之前"
if abs(components.hour) >= 1
{
created_at = "\(abs(components.hour))" + "小時(shí)前"
}
else if (abs(components.minute) >= 1)
{
//一個(gè)小時(shí)以內(nèi) 顯示"xx分鐘之前"
created_at = "\(abs(components.minute))" + "分鐘前"
}
else
{
//一分鐘以內(nèi) 顯示"剛剛"
created_at = "剛剛"
}
}
else
{
//昨天 顯示"昨天 mm:ss"
if NSCalendar.currentCalendar().isDateInYesterday(date)
{
dateFormatter.dateFormat = "HH:mm"
created_at = "昨天" + " " + dateFormatter.stringFromDate(date)
return
}
//今年但是不是昨天 顯示 MM-dd
if !NSCalendar.currentCalendar().isDateInYesterday(date)
{
dateFormatter.dateFormat = "MM-dd"
created_at = dateFormatter.stringFromDate(date)
return
}
//今年以前 yyyy-MM-dd
if date.isDateInThisYear()
{
dateFormatter.dateFormat = "yyyy-MM-dd"
created_at = dateFormatter.stringFromDate(date)
return
}
}
胥鴻儒