// 用于判断时间的方法
- (NSString *)judgeTheNowTimeWithCreateTime:(NSString *)createTime
{
// 用于最后返回的时间
NSString *time = nil;
// 获取服务器上保存的小时 例如服务器上保存的格式为:2018-01-11 11:54:35
NSString *createHour = [createTime substringWithRange: NSMakeRange(11, 2)];
// 获取分钟
NSString *createMinute = [createTime substringWithRange:NSMakeRange(14, 2)];
// 获取年月日
NSString *createDay = [createTime substringWithRange:NSMakeRange(0, 10)];
// 获取当前本地时间
NSDate *nowDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// 获取本地的小时
dateFormatter.dateFormat = @"HH";
NSString *nowHour = [dateFormatter stringFromDate:nowDate];
// 获取本地的分钟
dateFormatter.dateFormat = @"mm";
NSString *nowMinute = [dateFormatter stringFromDate:nowDate];
// 获取本地的年月日
dateFormatter.dateFormat = @"yyyy-MM-dd";
NSString *nowDay = [dateFormatter stringFromDate:nowDate];
// 判断
// 首先判断服务器上保存的年月日与本地时间年月日是否匹配,如果不匹配,则直接返回服务器上的时间,没有如朋友圈一样判断到昨天,如需要改功能可添加即可
if ([createDay isEqualToString:nowDay]) {
// 判断当前小时 - 创建小时后,如果返回0则说明在当前小时内,所以用分钟去返回
if ([nowHour intValue] - [createHour intValue] == 0) {
time = [NSString stringWithFormat:@"%d分钟前", ([nowMinute intValue] - [createMinute intValue])];
} else {
// 如果不为0再去判断是否在12个小时内,如果超过12个小时则直接返回创建时间,规则根据个人要求去设定
int hour = [nowHour intValue] - [createHour intValue];
if (hour < 12) {
time = [NSString stringWithFormat:@"%d小时前", hour];
}
}
} else {
// 不符合所需要的规则的话直接返回服务器上的时间即可
time = createTime;
}
return time;
}
方法需要传一个参数以及返回一个参数,我们只需要把服务器上保存的时间传进来,然后再返回出我们所需要的时间即可.
作为一个刚进入职场的新人,在这里保存下自己项目中所需要用到的方法,第一可分享给正好需要的人,第二保存自己的代码痕迹,日后如需用到则很方便使用,如有更简便的方式欢迎讨论,大牛勿喷