IM聊天會話列表,時間簡單判斷
//時間顯示內容
-(NSString *)getDateDisplayString:(long long) miliSeconds{
NSLog(@"-時間戳---%lld_----",miliSeconds);
NSTimeInterval tempMilli = miliSeconds;
NSTimeInterval seconds = tempMilli/1000.0;
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:seconds];
NSCalendar *calendar = [ NSCalendar currentCalendar ];
int unit = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear ;
NSDateComponents *nowCmps = [calendar components:unit fromDate:[ NSDate date ]];
NSDateComponents *myCmps = [calendar components:unit fromDate:myDate];
NSDateFormatter *dateFmt = [[NSDateFormatter alloc ] init ];
//2. 指定日曆對象,要去取日期對象的那些部分.
NSDateComponents *comp = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday fromDate:myDate];
if (nowCmps.year != myCmps.year) {
dateFmt.dateFormat = @"yyyy-MM-dd hh:mm";
} else {
if (nowCmps.day==myCmps.day) {
dateFmt.AMSymbol = @"上午";
dateFmt.PMSymbol = @"下午";
dateFmt.dateFormat = @"aaa hh:mm";
} else if((nowCmps.day-myCmps.day)==1) {
dateFmt.dateFormat = @"昨天";
} else {
if ((nowCmps.day-myCmps.day) <=7) {
switch (comp.weekday) {
case 1:
dateFmt.dateFormat = @"星期日";
break;
case 2:
dateFmt.dateFormat = @"星期一";
break;
case 3:
dateFmt.dateFormat = @"星期二";
break;
case 4:
dateFmt.dateFormat = @"星期三";
break;
case 5:
dateFmt.dateFormat = @"星期四";
break;
case 6:
dateFmt.dateFormat = @"星期五";
break;
case 7:
dateFmt.dateFormat = @"星期六";
break;
default:
break;
}
}else {
dateFmt.dateFormat = @"MM-dd hh:mm";
}
}
}
return [dateFmt stringFromDate:myDate];
}
評論時間戳的處理:
+ (NSString *)mhsq_getDateDisplayString:(long long)seconds {
MHSQ_Log(@"時間戳********%lld********",seconds);
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:seconds];
NSCalendar *calendar = [NSCalendar currentCalendar];
int unit = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear;
NSDateComponents *nowCmps = [calendar components:unit fromDate:[ NSDate date ]];
NSDateComponents *myCmps = [calendar components:unit fromDate:myDate];
NSDateFormatter *dateFmt = [[NSDateFormatter alloc ] init ];
//2. 指定日曆對象,要去取日期對象的那些部分.
// NSDateComponents *comp = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday fromDate:myDate];
// 不是同一年 2018-10-10 15:10
if (nowCmps.year != myCmps.year) {
dateFmt.dateFormat = @"yyyy-MM-dd hh:mm";
} else {
if (nowCmps.day == myCmps.day) {
/**
一個小時內,分同一個小時內:如 16:30:00 與 16:20:00,直接拿當前的 分鐘 - 時間戳的分鐘 就是10分鐘前,
一個小時內,分不同一個小時內:如 16:30:00、15:20:00, 時:(60 - 時間戳 + 當前的分鐘數) / 60 分:(60 - 時間戳 + 當前的分鐘數) % 60
*/
if (nowCmps.hour - myCmps.hour == 0) {
return [NSString stringWithFormat:@"%ld分鐘前", nowCmps.minute - myCmps.minute];
} else if (nowCmps.hour - myCmps.hour == 1 && nowCmps.minute + 60 - myCmps.minute < 60) {
return [NSString stringWithFormat:@"%ld分鐘前", nowCmps.minute + 60 - myCmps.minute];
} else if (nowCmps.hour - myCmps.hour == 1 && nowCmps.minute + 60 - myCmps.minute >= 60) {
return [NSString stringWithFormat:@"%ld小時前", nowCmps.hour - myCmps.hour];
} else if (nowCmps.hour - myCmps.hour > 1) {
return [NSString stringWithFormat:@"%ld小時前", nowCmps.hour - myCmps.hour];
}
} else if((nowCmps.day - myCmps.day) == 1) {
// 昨天
dateFmt.dateFormat = @"昨天 HH:mm";
} else {
dateFmt.dateFormat = @"MM-dd HH:mm";
}
}
return [dateFmt stringFromDate:myDate];
}