美文网首页
与当前时间比较:显示-昨天、刚刚、今天等

与当前时间比较:显示-昨天、刚刚、今天等

作者: mengyingguo | 来源:发表于2018-08-27 18:07 被阅读0次

    和当前时间比较

    1)1分钟以内 显示 : 刚刚

    2)1小时以内 显示 : X分钟前

    3)今天或者昨天 显示 : 今天 09:30 昨天 09:30

    今年 显示 : 09-12

    大于本年 显示 : 2013-09-09

    - (NSString *)formateDate:(NSString *)dateString
    {
        
        @try {
            
            // ------实例化一个NSDateFormatter对象
            NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
            [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//这里的格式必须和DateString格式一致
            
            NSDate * nowDate = [NSDate date];
    
            // ------将需要转换的时间转换成 NSDate 对象
            NSDate * needFormatDate = [dateFormatter dateFromString:dateString];
            
            // ------取当前时间和转换时间两个日期对象的时间间隔
            NSTimeInterval time = [nowDate timeIntervalSinceDate:needFormatDate];
    
            NSLog(@"time----%f",time);
            // ------再然后,把间隔的秒数折算成天数和小时数:
            
            NSString *dateStr = [[NSString alloc] init];
            
            if (time<=60) {  //1分钟以内的
                
                dateStr = @"刚刚";
                
            }else if(time<=60*60){  //一个小时以内的
                
                int mins = time/60;
                dateStr = [NSString stringWithFormat:@"%d分钟前",mins];
                
            }else if(time<=60*60*24){  //在两天内的
                
                [dateFormatter setDateFormat:@"YYYY-MM-dd"];
                NSString * need_yMd = [dateFormatter stringFromDate:needFormatDate];
                NSString *now_yMd = [dateFormatter stringFromDate:nowDate];
                
                [dateFormatter setDateFormat:@"HH:mm"];
                if ([need_yMd isEqualToString:now_yMd]) {
                    //在同一天
                    dateStr = [NSString stringWithFormat:@"今天 %@",[dateFormatter stringFromDate:needFormatDate]];
                }else{
                    //昨天
                    dateStr = [NSString stringWithFormat:@"昨天 %@",[dateFormatter stringFromDate:needFormatDate]];
                }
            }else {
                
                [dateFormatter setDateFormat:@"yyyy"];
                NSString * yearStr = [dateFormatter stringFromDate:needFormatDate];
                NSString *nowYear = [dateFormatter stringFromDate:nowDate];
                
                if ([yearStr isEqualToString:nowYear]) {
                    //在同一年
                    [dateFormatter setDateFormat:@"MM-dd"];
                    dateStr = [dateFormatter stringFromDate:needFormatDate];
                }else{
                    [dateFormatter setDateFormat:@"yyyy-MM-dd"];
                    dateStr = [dateFormatter stringFromDate:needFormatDate];
                }
            }
            
            return dateStr;
        }
        @catch (NSException *exception) {
            return @"";
        }
        
        
    }
    
    

    相关文章

      网友评论

          本文标题:与当前时间比较:显示-昨天、刚刚、今天等

          本文链接:https://www.haomeiwen.com/subject/iaptwftx.html