本文实例为大家分享了iOS上次日期距离现在多久的计算代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/**
* 计算上次日期距离现在多久
*
* @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 @ "" ;
}
|
使用如下:
1
2
3
4
|
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" ]);
|
输出结果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。