美文网首页
OC 某一时间距今多长时间

OC 某一时间距今多长时间

作者: 独孤伊人_xie | 来源:发表于2017-09-18 14:27 被阅读18次

    因为项目中,有一个关于检测的页面,需要记录下最新监测时间 距当前时间的距离。只需要传入最新监测时间,则会返回一个一分钟前,一小时前等的提示

    -(NSString *)getTimeContrast:(NSString *)time{
        NSDate *nowDate = [NSDate date];
        NSDateFormatter *dateFomatter = [[NSDateFormatter alloc] init];
        dateFomatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
        // 当前时间字符串格式
        NSString *nowDateStr = [dateFomatter stringFromDate:nowDate];
        // 截止时间data格式
        NSDate *expireDate = [dateFomatter dateFromString:time];
        // 当前时间data格式
        nowDate = [dateFomatter dateFromString:nowDateStr];
        // 当前日历
        NSCalendar *calendar = [NSCalendar currentCalendar];
        // 需要对比的时间数据
        NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth
        | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
        // 对比时间差nowDate
        NSDateComponents *dateCom = [calendar components:unit fromDate:expireDate toDate:nowDate options:0];
        //NSLog(@"日===%ld 小时===%ld 分===%ld 秒===%ld",dateCom.day,dateCom.hour,dateCom.minute,dateCom.second);
        if (dateCom.day == 0 && dateCom.hour == 0 && dateCom.minute == 0 && dateCom.second < 59) {
            return @"刚刚";
        }else if (dateCom.day == 0 && dateCom.hour == 0 && dateCom.minute != 0){
            return [NSString stringWithFormat:@"%ld分钟前",(long)dateCom.minute];
        }else if (dateCom.day == 0 && dateCom.hour != 0){
            return [NSString stringWithFormat:@"%ld小时前",(long)dateCom.hour];
        }else if (dateCom.day != 0){
            return time;
        }
        return time;
    }
    

    相关文章

      网友评论

          本文标题:OC 某一时间距今多长时间

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