时间算法 转换 (类似微信朋友圈时间显示)

时间:2017-04-10 12:40:16   收藏:0   阅读:2231

 

1 时间戳转换

- (NSString *)updateTimeForRow:(NSString *)createTimeString {

    // 获取当前时时间戳 1466386762.345715 十位整数 6位小数

    NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];

    // 创建时间戳(后台返回的时间 一般是13位数字)

    NSTimeInterval createTime = [createTimeString longLongValue]/1000;

    // 计算时间差

    NSTimeInterval time = currentTime - createTime;

    //如果时间小于60秒 显示 刚刚

    if (time < 60) {

        NSString *string = @"刚刚";

        return string;

    }

//如果时间大于60秒  小于60分钟  显示多少分钟前

    NSInteger sec = time/60;

    if (sec<60) {

        return [NSString stringWithFormat:@"%ld分钟前",sec];

    }

//如果时间 小于24小时  显示多少小时前

    // 秒转小时

    NSInteger hours = time/3600;

    if (hours<24) {

        return [NSString stringWithFormat:@"%ld小时前",hours];

    }

//如果时间大于24小时  小于30天  显示年月日  时间格式自己定 (也可以显示多少天之前  此处注释掉了)

    //秒转天数

    NSInteger days = time/3600/24;

    if (days < 30) {

        

        NSString * timeString = createTimeString;

        NSTimeInterval interval=[timeString doubleValue] / 1000.0;

        NSDate *conTimesp = [NSDate dateWithTimeIntervalSince1970:interval];

        NSDateFormatter* format = [[NSDateFormatter alloc]init];

        [format setDateFormat:@"MM-dd HH:mm"];

        NSString* times = [format stringFromDate:conTimesp];

        return times;

//        return [NSString stringWithFormat:@"%ld天前",days];

    }

//如果时间大于30天  小于12个月  显示时间格式 

    //秒转月

    NSInteger months = time/3600/24/30;

    if (months < 12) {

        

        NSString * timeString = createTimeString;

        NSTimeInterval interval=[timeString doubleValue] / 1000.0;

        NSDate *conTimesp = [NSDate dateWithTimeIntervalSince1970:interval];

        NSDateFormatter* format = [[NSDateFormatter alloc]init];

        [format setDateFormat:@"MM-dd HH:mm"];

        NSString* times = [format stringFromDate:conTimesp];

        return times;

    }

//其他的 就显示时间格式

    NSString * timeString = createTimeString;

    NSTimeInterval interval=[timeString doubleValue] / 1000.0;

    NSDate *conTimesp = [NSDate dateWithTimeIntervalSince1970:interval];

    NSDateFormatter* format = [[NSDateFormatter alloc]init];

    [format setDateFormat:@"MM-dd HH:mm"];

    NSString* times = [format stringFromDate:conTimesp];

    

    return times;

}

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!