时间戳 得到(几分钟前,今天HH:mm, 昨天HH:mm,MM-dd HH:mm , yyyy-MM-dd HH:mm)(注意:是秒级 还是毫秒级)
//TODO: - 将毫秒级 时间戳 转换 为 刚刚 分钟前 昨天 HH:mm MM-dd HH:mm
+ (NSString *)distanceTimeWithTimeString:(NSString *)str
{
// 获取当前时时间戳秒级 1466386762.345715 十位整数 6位小数
NSTimeInterval now = [[NSDate date]timeIntervalSince1970];
NSTimeInterval beTime =[str doubleValue];
//后台返回的是毫秒级的 故的转为秒级的
beTime = beTime/1000;
double distanceTime = now - beTime;
NSString * distanceStr;
NSDate * beDate = [NSDate dateWithTimeIntervalSince1970:beTime];
NSDateFormatter * df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"HH:mm"];
NSString * timeStr = [df stringFromDate:beDate];
[df setDateFormat:@"dd"];
NSString * nowDay = [df stringFromDate:[NSDate date]];
NSString * lastDay = [df stringFromDate:beDate];
if (distanceTime < 60) {//小于一分钟
distanceStr = @"刚刚";
}
else if (distanceTime <60*60) {//时间小于一个小时
distanceStr = [NSString stringWithFormat:@"%ld分钟前",(long)distanceTime/60];
}
else if(distanceTime <24*60*60 && [nowDay integerValue] == [lastDay integerValue]){//时间小于一天
distanceStr = [NSString stringWithFormat:@"今天 %@",timeStr];
}
else if(distanceTime<24*60*60*2 && [nowDay integerValue] != [lastDay integerValue]){
if ([nowDay integerValue] - [lastDay integerValue] ==1 || ([lastDay integerValue] - [nowDay integerValue] > 10 && [nowDay integerValue] == 1)) {
distanceStr = [NSString stringWithFormat:@"昨天 %@",timeStr];
}
else{
[df setDateFormat:@"MM-dd HH:mm"];
distanceStr = [df stringFromDate:beDate];
}
}
else if(distanceTime <24*60*60*365){
[df setDateFormat:@"MM-dd HH:mm"];
distanceStr = [df stringFromDate:beDate];
}
else{
[df setDateFormat:@"yyyy-MM-dd HH:mm"];
distanceStr = [df stringFromDate:beDate];
}
return distanceStr;
}
本文介绍了一种方法,用于将毫秒级时间戳转换为更友好的时间格式,如“几分钟前”、“今天HH:mm”等。通过比较当前时间和目标时间的时间差,实现了不同时间范围内的格式化显示。
404

被折叠的 条评论
为什么被折叠?



