第一次写东西,对简书的这个编辑模式实在是😖,很是无语!
最近才开始学习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是显示时间的标签
}