chatViewFormatTime static method
Implementation
static String chatViewFormatTime(
int? milliseconds, {
DateTime? now,
NexconnChatUILocalizations? l10n,
}) {
if (milliseconds == null || milliseconds <= 0) {
return '';
}
final date = DateTime.fromMillisecondsSinceEpoch(milliseconds);
final currentTime = now ?? DateTime.now();
final minute = date.minute.toString().padLeft(2, '0');
if (date.year != currentTime.year) {
return '${date.year}/${date.month}/${date.day} ${date.hour}:$minute';
}
if (date.month != currentTime.month) {
return '${date.month}/${date.day} ${date.hour}:$minute';
}
final dateOnly = DateTime(date.year, date.month, date.day);
final nowOnly = DateTime(
currentTime.year,
currentTime.month,
currentTime.day,
);
final differenceInDays = nowOnly.difference(dateOnly).inDays;
if (differenceInDays == 0) {
return '${date.hour}:$minute';
}
if (differenceInDays == 1) {
final time = '${date.hour}:$minute';
return l10n?.combineMessageTimeYesterday(time) ?? '昨天 $time';
}
if (differenceInDays > 1 && differenceInDays < 7) {
return '${_localizedWeekday(date.weekday, l10n)} ${date.hour}:$minute';
}
return '${_formatShortDate(date, l10n)} ${date.hour}:$minute';
}