在项目中经常会遇到时间的规则
例如:
时间规则(所有时间最小到分钟级别):
时间<1小时时,显示X分钟前;
1小时<=时间<1天时,显示x小时前;
1天<=时间<20天,显示(昨天、1天前、2天前....20天前);
20天<=时间,显示日期
这里涉及到一个时间戳的问题。如果想完成这样类似的功能 需要后台提供时间戳。
第一步:获取当前的时间戳
NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];
第二步:返回后台的时间戳
NSTimeInterval createTime = model.timestamp; (注:model.timestamp 是后台返回的数据)
第三步:时间差
NSTimeInterval time = currentTime - createTime;
...
其实时间差 就是 秒数了
剩下的就是自己去换算了
//秒转分钟
NSInteger minute = time/60;
if (minute < 60) {
return [NSString stringWithFormat:@"%ld分钟前",minute];
}
// 秒转小时
NSInteger hours = time/3600;
if (hours<24) {
return [NSString stringWithFormat:@"%ld小时前",hours];
}
//秒转天数
NSInteger days = time/3600/24;
if (days < 20) {
return [NSString stringWithFormat:@"%ld天前",days];
}else{
return [NSString stringWithFormat:@"%@",model.createtime];
}
...