60s内:刚刚
一天内:显示时分
同一年:显示月日
不同年:显示年月日
+(NSString *)changeToDifferentStyleCompareToNow:(NSString *)timeStampString
{
NSString *style;
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];//时间形式
//时区转换
NSTimeZone *zone = [NSTimeZone systemTimeZone];
//现在时间
NSString *nowString=[NSString stringWithFormat:@"%ld", (long)[[NSDate date] timeIntervalSince1970]];
NSInteger nowInterval = [zone secondsFromGMTForDate:[NSDate dateWithTimeIntervalSince1970:[nowString longLongValue]]];
NSDate *nowDate = [[NSDate dateWithTimeIntervalSince1970:[nowString longLongValue]] dateByAddingTimeInterval: nowInterval];
nowString=[NSString stringWithFormat:@"%@",nowDate];
//给出时间
NSInteger giveInterval = [zone secondsFromGMTForDate:[NSDate dateWithTimeIntervalSince1970:[timeStampString longLongValue]]];
NSDate *giveDate = [[NSDate dateWithTimeIntervalSince1970:[timeStampString longLongValue]] dateByAddingTimeInterval: giveInterval];
NSString *giveString=[NSString stringWithFormat:@"%@",giveDate];
if(![[nowString substringToIndex:4] isEqualToString:[giveString substringToIndex:4]]){//年份比较,不同年
style=[giveString substringWithRange:NSMakeRange(2, 8)];
}else if (![[nowString substringWithRange:NSMakeRange(8, 2)] isEqualToString:[giveString substringWithRange:NSMakeRange(8, 2)]]){//不同日
style=[giveString substringWithRange:NSMakeRange(5, 5)];
}else {
NSString *nowHour=[nowString substringWithRange:NSMakeRange(11, 2)];
NSString *giveHour=[giveString substringWithRange:NSMakeRange(11, 2)];
if(![nowHour isEqualToString:giveHour]){//小时不同
style=[giveString substringWithRange:NSMakeRange(11, 5)];
}else{
NSString *nownimute=[nowString substringWithRange:NSMakeRange(14, 2)];
NSString *nowsecond=[nowString substringWithRange:NSMakeRange(17, 2)];
int nowSecondTotal=[nownimute intValue]*60+[nowsecond intValue];
NSString *givenimute=[giveString substringWithRange:NSMakeRange(14, 2)];
NSString *givesecond=[giveString substringWithRange:NSMakeRange(17, 2)];
int giveSecondTotal=[givenimute intValue]*60+[givesecond intValue];
if(nowSecondTotal-60>giveSecondTotal){
style=[giveString substringWithRange:NSMakeRange(11, 5)];
}else{
style=@"刚刚";
}
}
}
return style;
}