Welcome

首页 / 移动开发 / IOS / iOS计算上次日期距离现在多久的代码

本文实例为大家分享了iOS上次日期距离现在多久的计算代码,供大家参考,具体内容如下
/** * 计算上次日期距离现在多久 * * @param lastTime上次日期(需要和格式对应) * @param format1 上次日期格式 * @param currentTime 最近日期(需要和格式对应) * @param format2 最近日期格式 * * @return xx分钟前、xx小时前、xx天前 */+ (NSString *)timeIntervalFromLastTime:(NSString *)lastTimelastTimeFormat:(NSString *)format1 ToCurrentTime:(NSString *)currentTime currentTimeFormat:(NSString *)format2{//上次时间NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc]init];dateFormatter1.dateFormat = format1;NSDate *lastDate = [dateFormatter1 dateFromString:lastTime];//当前时间NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc]init];dateFormatter2.dateFormat = format2;NSDate *currentDate = [dateFormatter2 dateFromString:currentTime];return [Utilities timeIntervalFromLastTime:lastDate ToCurrentTime:currentDate];} + (NSString *)timeIntervalFromLastTime:(NSDate *)lastTime ToCurrentTime:(NSDate *)currentTime{NSTimeZone *timeZone = [NSTimeZone systemTimeZone];//上次时间NSDate *lastDate = [lastTime dateByAddingTimeInterval:[timeZone secondsFromGMTForDate:lastTime]];//当前时间NSDate *currentDate = [currentTime dateByAddingTimeInterval:[timeZone secondsFromGMTForDate:currentTime]];//时间间隔NSInteger intevalTime = [currentDate timeIntervalSinceReferenceDate] - [lastDate timeIntervalSinceReferenceDate]; //秒、分、小时、天、月、年NSInteger minutes = intevalTime / 60;NSInteger hours = intevalTime / 60 / 60;NSInteger day = intevalTime / 60 / 60 / 24;NSInteger month = intevalTime / 60 / 60 / 24 / 30;NSInteger yers = intevalTime / 60 / 60 / 24 / 365; if (minutes <= 10) {return @"刚刚";}else if (minutes < 60){return [NSString stringWithFormat: @"%ld分钟前",(long)minutes];}else if (hours < 24){return [NSString stringWithFormat: @"%ld小时前",(long)hours];}else if (day < 30){return [NSString stringWithFormat: @"%ld天前",(long)day];}else if (month < 12){NSDateFormatter * df =[[NSDateFormatter alloc]init];df.dateFormat = @"M月d日";NSString * time = [df stringFromDate:lastDate];return time;}else if (yers >= 1){NSDateFormatter * df =[[NSDateFormatter alloc]init];df.dateFormat = @"yyyy年M月d日";NSString * time = [df stringFromDate:lastDate];return time;}return @"";} 
使用如下:

NSLog(@"

result: %@", [Utilities timeIntervalFromLastTime:@"2015年12月8日 15:50"lastTimeFormat:@"yyyy年MM月dd日 HH:mm"ToCurrentTime:@"2015/12/08 16:12"currentTimeFormat:@"yyyy/MM/dd HH:mm"]);
 输出结果如下:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。