iOS时间戳 从1970到现在 NSDate时间转换,距现在发布多长时间

项目用到了从服务器返回距离1970年多少秒的发布的数据,然后计算多少当前时间距离消息发布的时间,1分钟以内显示几秒前,1小时以内显示几分钟前,1天以内显示几小时前,超过一天则显示具体日期,这是需求。

为此我做了一个 NSDate的扩展类,分享给大家
#import "NSDate+Extention.h"
@implementation NSDate (Extention)`

+ (NSString *)nowFromDateExchange:(int)oldTime {//oldTime 为服务器返回的发布消息时间距离1970年多少秒
    
//    计算现在距1970年多少秒
    NSDate *date = [NSDate date];
    NSTimeInterval currentTime= [date timeIntervalSince1970];
    
//    计算现在的时间和发布消息的时间时间差
    double timeDiffence = currentTime - oldTime;
    
//    根据秒数的时间差的不同,返回不同的日期格式
    if (timeDiffence <= 60) {
        return [NSString stringWithFormat:@"%.0f 秒前",timeDiffence];
    }else if (timeDiffence <= 3600){
        return [NSString stringWithFormat:@"%.0f 分钟前",timeDiffence / 60];
    }else if (timeDiffence <= 86400){
        return [NSString stringWithFormat:@"%.0f 小时前",timeDiffence / 3600];
    }else if (timeDiffence <= 604800){
        return [NSString stringWithFormat:@"%.0f 天前",timeDiffence / 3600 /24];
    }else{
        //    返回具体日期
        NSDate *oldTimeDate = [NSDate dateWithTimeIntervalSince1970:oldTime];
        
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"yyyy-MM-dd"];
        return [formatter stringFromDate:oldTimeDate];
    }
}

@end

转载链接:https://www.jianshu.com/p/c24f4e13e82a

你可能感兴趣的:(iOS时间戳 从1970到现在 NSDate时间转换,距现在发布多长时间)