NSString的扩展(Category)

2017-09-27  本文已影响83人  努力奔跑的小男孩

| 用到的其他的扩展
NSDate 的扩展(Category) 时间处理 针对评论时间处理

描述: 通过传入一个日期字符串(例如:2017-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
上一篇 下一篇

猜你喜欢

热点阅读