IOS发表文章需要显示的时间与当前时间的比较

// 用于判断时间的方法
- (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;
}

方法需要传一个参数以及返回一个参数,我们只需要把服务器上保存的时间传进来,然后再返回出我们所需要的时间即可.

作为一个刚进入职场的新人,在这里保存下自己项目中所需要用到的方法,第一可分享给正好需要的人,第二保存自己的代码痕迹,日后如需用到则很方便使用,如有更简便的方式欢迎讨论,大牛勿喷

你可能感兴趣的:(ios,ios,时间)