按照指定格式返回时间戳
按照指定格式返回时间戳
//需求:
//1,一分钟之内的显示“刚刚”
//2,一分钟以上且一个小时之内的,显示“多少分钟前”,例如“5分钟前”
//3,1小时以内的字颜色为黄色(以上三点与目前一样)
//4,1小时以上三天以内的显示“今天/昨天/前天+具体时间”
//5,前天以后的显示"日期+具体时间",如"2月11日 20:19"
//数据前提:
//1, 提供一个时间串(貌似是这样叫的吧)
//方法调用:
//1, [类名 timeStrTotimeStamp:时间串];
//方法来源:
//1, 通过网络代码进行改造
//1,一分钟之内的显示“刚刚”
//2,一分钟以上且一个小时之内的,显示“多少分钟前”,例如“5分钟前”
//3,1小时以内的字颜色为黄色(以上三点与目前一样)
//4,1小时以上三天以内的显示“今天/昨天/前天+具体时间”
//5,前天以后的显示"日期+具体时间",如"2月11日 20:19"
//数据前提:
//1, 提供一个时间串(貌似是这样叫的吧)
//方法调用:
//1, [类名 timeStrTotimeStamp:时间串];
//方法来源:
//1, 通过网络代码进行改造
|
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
//按照指定格式返回时间 (日期+具体时间",如"2月11日 20:19")+(NSString *)speTimewithTimeStr:(NSString *)timeStr{ NSDateFormatter *formatter = [[[NSDateFormatter alloc]init]autorelease]; [formatter setDateFormat:@"MM月dd日 HH:mm:ss"]; NSTimeInterval timeInterval = [timeStr intValue]; NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:timeInterval]; NSString *str = [formatter stringFromDate:confromTimesp]; return str;}//返回时间所在日期当天的准确时间. (20:19)+(NSString *)smallTimewithTimeStr:(NSString *)timeStr{ NSDateFormatter *formatter = [[[NSDateFormatter alloc]init]autorelease]; [formatter setDateFormat:@" HH:mm:ss"]; NSTimeInterval timeInterval = [timeStr intValue]; NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:timeInterval]; NSString *str = [formatter stringFromDate:confromTimesp]; return str;}//判断两个日期是否是同一天+(BOOL)isSameDay:(NSDate*)date1 date2:(NSDate*)date2{ NSCalendar* calendar = [NSCalendar currentCalendar]; unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; NSDateComponents* comp1 = [calendar components:unitFlags fromDate:date1]; NSDateComponents* comp2 = [calendar components:unitFlags fromDate:date2]; return [comp1 day] == [comp2 day] && [comp1 month] == [comp2 month] && [comp1 year] == [comp2 year];}//时间转时间戳+(NSString *)timeStrTotimeStamp:(id)timeStr{ //获取当前时间时间串 //与获得时间串进行对比 //根据时间差显示不同内容 //返回内容 int nowTime = [[DSUtils timeStamp] intValue]; int gapTime = nowTime - [timeStr intValue]; NSString *timeStamp = nil; if (gapTime < 60) { //一分钟内显示刚刚 timeStamp = [NSString stringWithFormat:@"刚刚"]; }else if(60<=gapTime && gapTime<60*60){ //一分钟以上且一个小时之内的,显示“多少分钟前”,例如“5分钟前” timeStamp = [NSString stringWithFormat:@"%i分钟前",gapTime/60]; }else if (60*60<=gapTime && gapTime<60*60*24*3){ //1小时以上三天以内的显示“今天/昨天/前天+具体时间” NSString *dayStr ; int gapDay = gapTime/(60*60*24) ; switch (gapDay) { case 0: { //在24小时内,存在跨天的现象. 判断两个时间是否在同一天内. NSDate *date1 = [NSDate date]; NSTimeInterval timeInterval = [timeStr intValue]; NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:timeInterval]; BOOL idSameDay = [DSUtils isSameDay:date1 date2:date2]; if (idSameDay == YES) { dayStr = [NSString stringWithFormat:@"今天"]; }else{ dayStr = [NSString stringWithFormat:@"昨天"]; } } break; case 1: dayStr = [NSString stringWithFormat:@"昨天"]; break; case 2: dayStr = [NSString stringWithFormat:@"前天"]; break; default: break; }// timeStamp = [dayStr stringByAppendingString:[DSUtils smallTimewithTimeStr:timeStrs]]; timeStamp = [NSString stringWithFormat:@"%@%@",dayStr,[DSUtils smallTimewithTimeStr:timeStr]]; }else{ //前天以后的显示"日期+具体时间",如"2月11日 20:19" timeStamp = [NSString stringWithString:[DSUtils speTimewithTimeStr:timeStr]]; } return [timeStamp copy];} |

浙公网安备 33010602011771号