Skip to content

Commit 083aa97

Browse files
committed
Merge pull request xhzengAIB#177 from hanchunlong/master
优化消息时间标签显示
2 parents 5715868 + 571b380 commit 083aa97

1 file changed

Lines changed: 22 additions & 3 deletions

File tree

MessageDisplayKit/Classes/Views/MessageContentViews/XHMessageTableViewCell.m

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,28 @@ - (void)configureTimestamp:(BOOL)displayTimestamp atMessage:(id <XHMessageModel>
160160
self.displayTimestamp = displayTimestamp;
161161
self.timestampLabel.hidden = !self.displayTimestamp;
162162
if (displayTimestamp) {
163-
self.timestampLabel.text = [NSDateFormatter localizedStringFromDate:message.timestamp
164-
dateStyle:NSDateFormatterMediumStyle
165-
timeStyle:NSDateFormatterShortStyle];
163+
NSString *dateText = nil;
164+
NSString *timeText = nil;
165+
166+
NSDate *today = [NSDate date];
167+
NSDateComponents *components = [[NSDateComponents alloc] init];
168+
[components setDay:-1];
169+
NSDate *yesterday = [[NSCalendar currentCalendar] dateByAddingComponents:components toDate:today options:0];
170+
171+
NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:message.timestamp];
172+
NSDateComponents *todayComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:today];
173+
NSDateComponents *yesterdayComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:yesterday];
174+
175+
if (dateComponents.year == todayComponents.year && dateComponents.month == todayComponents.month && dateComponents.day == todayComponents.day) {
176+
dateText = NSLocalizedString(@"Today", @"Today");
177+
} else if (dateComponents.year == yesterdayComponents.year && dateComponents.month == yesterdayComponents.month && dateComponents.day == yesterdayComponents.day) {
178+
dateText = NSLocalizedString(@"Yesterday", @"Yesterday");
179+
} else {
180+
dateText = [NSDateFormatter localizedStringFromDate:message.timestamp dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterNoStyle];
181+
}
182+
timeText = [NSDateFormatter localizedStringFromDate:message.timestamp dateStyle:NSDateFormatterNoStyle timeStyle:NSDateFormatterShortStyle];
183+
184+
self.timestampLabel.text = [NSString stringWithFormat:@"%@ %@",dateText,timeText];
166185
}
167186
}
168187

0 commit comments

Comments
 (0)