| 用到的其他的扩展
NSDate 的扩展(Category) 时间处理 针对评论时间处理
描述: 通过传入一个日期字符串(例如:2017-09-27 13:21:47):返回有以下几种格式
- 如果是上一年 直接返回 日期字符串
- 如果是同一年
- 一分钟之内 返回 @"刚刚"
- 是昨天 返回 @"昨天 13:21:47 "
- 同一天 返回@"几小时前或者几分钟前"
- 几天前 返回 @"09-27 13:21:47"
.h 文件
#import <Foundation/Foundation.h>
@interface NSString (YYExtension)
+ (NSString *)yyDateWith:(NSString *)create_time;
@end
.m文件
#import "NSString+YYExtension.h"
#import "NSDate+YYExtension.h" // 引用头文件
@implementation NSString (YYExtension)
// 实现
+ (NSString *)yyDateWith:(NSString *)create_time{
NSString * timeStr = nil;
NSDateFormatter *fmt = [[NSDateFormatter alloc]init];
fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *createDate = [fmt dateFromString:create_time];
// 判断
if (createDate.isThisYear) { // 今年
if (createDate.isToday) {
NSDateComponents *comps = [[NSDate date] dateFrom:createDate]; // 现在已经是同一天了,通过这个方法可以计算出于为了得到小时数 分钟数
if (comps.hour >= 1) { // 大于等于1小时
timeStr = [NSString stringWithFormat:@"%zd小时前",comps.hour];
}else if (comps.minute >= 1){ // 1小时 > 时间差 > 1分钟
timeStr = [NSString stringWithFormat:@"%zd分钟前",comps.minute];
}else{ // 一分钟以内
timeStr = @"刚刚";
}
}else if (createDate.isYesterday){ // 昨天
fmt.dateFormat = @"昨天 HH:mm:ss";
timeStr = [fmt stringFromDate:createDate];
}else{ // 09-09 12:22:32
fmt.dateFormat = @"MM-dd HH:mm:ss";
timeStr = [fmt stringFromDate:createDate];
}
}else{ //不是今年
timeStr = create_time;
}
return timeStr;
}
@end