iOS calculates the last date distance now, such as xx hours ago, xx minutes ago, etc.

Source: Internet
Author: User
Tags dateformat

/**   *  计算上次日期距离现在多久   *   *  @param lastTime    上次日期(需要和格式对应)   *  @param format1     上次日期格式   *  @param currentTime 最近日期(需要和格式对应)   *  @param format2     最近日期格式   *   *  @return xx分钟前、xx小时前、xx天前   */ + ( NSString *)timeIntervalFromLastTime:( NSString *)lastTime                          lastTimeFormat:( 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 @"" ; } Use the following: NSLog ( @"\n\nresult: %@" , [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" ]); The output results are as follows:

iOS calculates the last date distance now, such as xx hours ago, xx minutes ago, etc.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.