OC 某一时间距今多长时间

2017-09-18  本文已影响18人  独孤伊人_xie

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

-(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;
}
上一篇 下一篇

猜你喜欢

热点阅读