- //方式一 后台给的格式为yyyy-MM-dd HH:mm:ss.SSS
- - (NSString *) compareCurrentTime:(NSString *)str
- {
- //把字符串转为NSdate
- NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
- [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
- NSDate *timeDate = [dateFormatter dateFromString:str];
- NSDate *currentDate = [NSDate date];
- //得到两个时间差
- NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:timeDate];
- long temp = 0;
- NSString *result;
- if (timeInterval/60 < 1)
- {
- result = [NSString stringWithFormat:@"刚刚"];
- }
- else if((temp = timeInterval/60) <60){
- result = [NSString stringWithFormat:@"%ld分钟前",temp];
- }
- else if((temp = temp/60) <24){
- result = [NSString stringWithFormat:@"%ld小时前",temp];
- }
- else if((temp = temp/24) <30){
- result = [NSString stringWithFormat:@"%ld天前",temp];
- }
- else if((temp = temp/30) <12){
- result = [NSString stringWithFormat:@"%ld月前",temp];
- } else{
- temp = temp/12;
- result = [NSString stringWithFormat:@"%ld年前",temp];
- }
- return result;
- }
- //方式二 后台给的格式为 纯数字1352170595000(13位)
- - (NSString *)updateTimeForRow:(NSString *)str {
- // 获取当前时时间戳 1466386762.345715 十位整数 6位小数
- NSTimeInterval currentTime = [[NSDate date] timeIntervalSince1970];
- // 创建歌曲时间戳(后台返回的时间 一般是13位数字)
- NSTimeInterval createTime =[str floatValue]/1000;
- // 时间差
- NSTimeInterval time = currentTime - createTime;
- //秒转分钟
- NSInteger small = time / 60;
- if (small == 0) {
- return [NSString stringWithFormat:@"刚刚"];
- }
- if (small < 60) {
- return [NSString stringWithFormat:@"%ld分钟前",small];
- }
- // 秒转小时
- NSInteger hours = time/3600;
- if (hours<24) {
- return [NSString stringWithFormat:@"%ld小时前",hours];
- }
- //秒转天数
- NSInteger days = time/3600/24;
- if (days < 30) {
- return [NSString stringWithFormat:@"%ld天前",days];
- }
- //秒转月
- NSInteger months = time/3600/24/30;
- if (months < 12) {
- return [NSString stringWithFormat:@"%ld月前",months];
- }
- //秒转年
- NSInteger years = time/3600/24/30/12;
- return [NSString stringWithFormat:@"%ld年前",years];
- }